IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Piloter une application externe


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut Piloter une application externe
    Bonjour à tous,

    Je cherche à piloter une appli externe (développée en Windev)

    Pour celà j'utilise les handles de mes fenetres et des composants.

    Puis j'envoie des instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lRet = SendMessage(ChampOuLabel, WM_SETTEXT, 0, "10")
    Lorsque j'envoie l'instruction ci-dessus, des caractères bizarres s'affichent dans le champ.

    Lorsque je fais un WM_GETTEXT pour récupérer la valeur du champ (par ex: 10) il me retourne le 1 suivi d'un carré.

    D'après vous, de quoi est-ce que celà peut provenir?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Sans indiquer la valeur de ce caractère «bizarre», cela va être difficile de te répondre.
    A tout hasard, ce ne serait pas un Carriage Return ou un car 0 ?

  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut
    ça varie à chaque fois (pour la même valeur envoyée):

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Le dernier paramètre doit être ByVal, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_GETTEXT = &HD
    Private Const WM_SETTEXT = &HC
    Dim lRet&
     
    Private Sub Command1_Click()
        lRet = SendMessage(Text1.hwnd, WM_SETTEXT, -1, ByVal "BONJOUR")
        lRet = SendMessage(Command1.hwnd, WM_SETTEXT, -1, ByVal "BONJOUR")
    End Sub

  5. #5
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut
    ok, merci beaucoup, ça marche.

    A y être, j'ai le handle du bouton "OK", comment lancer le clic du bouton avec SendMessage?

    Je regarde la piste du WM_COMMAND, mais sans succès pour l'instant.

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Ajoute au code précédent ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Const BM_CLICK& = &HF5&
    Private Sub Form_Load()
        lRet = SendMessage(Command1.hwnd, BM_CLICK, 0&, 0&)
    End Sub
    Tu peux utiliser Form_Click au lieu de Form_Load pour mieux voir le résultat.
    Bonne journée.

  7. #7
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut
    super, ça marche.

    Où est-ce que tu trouves toutes ces infos? ça me serait bien utile, parce que je galère.
    Là je dois envoyer une instruction pour double cliquer sur une valeur d'une listbox...

  8. #8
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Voici tout le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_GETTEXT = &HD
    Private Const WM_SETTEXT = &HC
    Dim lRet&
    Private Const WM_LBUTTONDBLCLK = &H203
    Private Const BM_CLICK& = &HF5&
     
    Private Sub Command1_Click()
        lRet = SendMessage(Text1.hwnd, WM_SETTEXT, 0, ByVal "BONJOUR")
        lRet = SendMessage(Command1.hwnd, WM_SETTEXT, 0, ByVal "BONJOUR")
    End Sub
     
    Private Sub Form_DblClick()
        lRet = SendMessage(Text1.hwnd, WM_LBUTTONDBLCLK, 0&, 1&)
        lRet = SendMessage(List1.hwnd, WM_LBUTTONDBLCLK, 0&, 1&)
    End Sub
     
    Private Sub Form_Load()
        lRet = SendMessage(Command1.hwnd, BM_CLICK, 0&, 0&)
        With List1
         .AddItem Text1.Text & UCase(" Asdorve")
         .AddItem Me.Caption
         .AddItem Now
        End With
    End Sub
    Private Sub List1_DblClick()
      'List1 ne doit être vide, sinon pas de réaction
      With List1
          .BackColor = vbGreen
          .FontName = "Arial Black"
          .FontSize = 14
      End With
    End Sub
     
    Private Sub Text1_DblClick()
        Text1.ForeColor = vbRed
        Text1.FontBold = 1
        Text1.FontSize = 16
    End Sub
    Double-clique sur la feuille et tu verras les changements dans les contrôles.
    MSDN contient presque la totalité des astuces et aide à la programmation.
    Autre chose qu'il ne faut négliger : La visionneuse d'API Apiloader.exe.

    Bonne journée

  9. #9
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 107
    Points : 16 633
    Points
    16 633
    Par défaut
    Salut

    Citation Envoyé par l_autodidacte
    MSDN contient presque la totalité des astuces et aide à la programmation.
    Autre chose qu'il ne faut négliger : La visionneuse d'API Apiloader.exe.


    De plus sur DVP outils, il y a aussi (entre autres) ApiViewer encore plus pratique quant tu l'associes avec ApiGuide

  10. #10
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Salut;
    Tout à fait.
    Merci pour le complément.

  11. #11
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut
    Merci à tous pour votre aide.
    Je vais me pencher plus en profondeur sur les documents que vous citez.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD16] Piloter une application externe sans bouger la souris
    Par WDKyle dans le forum WinDev
    Réponses: 3
    Dernier message: 17/07/2013, 09h51
  2. Piloter une application externe
    Par Montor dans le forum Contribuez
    Réponses: 4
    Dernier message: 10/09/2012, 12h13
  3. Réponses: 12
    Dernier message: 23/01/2008, 09h17
  4. Réponses: 6
    Dernier message: 07/09/2005, 20h31
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo