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

Delphi Discussion :

syntaxe incorrecte findwindowex ?


Sujet :

Delphi

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut syntaxe incorrecte findwindowex ?
    Bonjour à tous,

    Je galere à nouveau :

    Je cherche a simuler des raccourci clavier (touche UP and Down) sur une fenetre dont je connais le nom, et sur une zone de cette fenetre dont je connais le numero de handle :
    j'ai tente ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Button1Click(Sender: TObject);
    var
      hCible, hButton : HWND;
    begin
      hCible := FindWindow(nil, PChar('Waveterminal 192-M v 5.01 Console')); //on retrouve le Handle de la fenêtre du programme
      if hCible <> 0 then
        begin
          hButton := FindWindowEx(hCible,'65800',nil,nil); //on retrouve le Handle du bouton sur lequel on veux cliquer 65800 numero de handle de la fenetre cible fille
          if hButton <> 0 then
    keybd_event(vk_up,0,1,0); //touche enfoncé
    sleep(10);
    keybd_event(vk_up,0,2,0); //touche relevé//on lui faire croire que l'on a cliqué dessus
    end
    end.
    c'est un bout de code que j'ai trouvé sur ce forum, mais il me met le message suivant :

    type incompatible 'hwnd' et 'string'

    je ne comprend pas il y t'il une erreur de syntaxe ?

    je galere car la zone ou je veux simuler un appuie de touche je ne connais que son numéro de handle, elle n'as pas de nom,


    Avez vous une idée ?

    Merci de votre aide,

    Cordialement ,

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 944
    Par défaut
    type incompatible 'hwnd' et 'string'
    sur quelle ligne ?

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Ce ne serait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hButton := FindWindowEx(hCible,0,'65800',nil);

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut
    Citation Envoyé par Graffito
    Bonjour,

    Ce ne serait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hButton := FindWindowEx(hCible,0,'65800',nil);
    merci beaucoup de ta reponse effectivement je n'ai plus de plantage cependant ça ne marche pas la simulation n'atteint pas la cible...grrrr

    faut que je trouve....

  5. #5
    Membre éclairé

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Par défaut
    Salut,

    Ce qui m'étonne c'est qu'apparemment tu définis un handle directement dans l'application, alors qu'un handle change a chaque redémarrage de l'appli.

    Vérifie déjà l'arborescence des contrôles fenêtres en utilisant Spy++ ou un prog du même style.
    Un prog a moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://pagesperso.laposte.net/holyview/coding/mes_progs/winx_1.3.rar
    Et n'oublie pas que tu ne peux pas définir dans ton code le handle directement vu qu'il variera a chaque redémarrage de l'appli.

    PS : un handle est un nombre et non une chaine ...

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut
    [IMG]http://fr.wrs.yahoo.com/_ylt=A9htdaFdxJ9EyZIA7yVuAQx./SIG=12f7tbd1k/EXP=1151407581/**http%3a//www.8thstreet.com/images/egosys-waveterminal192l.jpg[/IMG]

    voila en faite sur cette image on voit la console sur laquelle je veux effectuer une action :

    Je connais le nom de la fenetre :Waveterminal 192-M v 5.01 Console, grâce au nom de la fenêtre je peut recuperer son Handle avec findwindow

    à l'interieur de cette fenêtre je connais le numéro de handle de la fenetre sur laquelle je veux effectuer une action :'65800' (controle du volume) pour soit faire tourner la molette de la souris soit les touches haut bas du clavier, je pensais pouvoir recuperer le focus sur cette zone avec findwindowex mais ça ne marche pas,

    Si vous avez une astuce je suis preneur !!!

  7. #7
    Membre éclairé

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Par défaut
    T'as lu ce que j'ai ecris ???

  8. #8
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    bonjour,

    je connais le numéro de handle de la fenetre sur laquelle je veux effectuer une action :'65800' (controle du volume)
    Comme il a été indiqué, le "numero de Handle" ne convient pas.
    Le paramètre 3 de FindWindowEx correspond au WindowName.

    Si '68500' est le WindowName, le problème vient peut-être de ce que le bouton n'est pas l'une des fenêtre filles de la cible, mais seulement un petit-fils (example : bouton dans un panneau) ou un arrière petit-fils.

  9. #9
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Par défaut
    Citation Envoyé par basnifo
    T'as lu ce que j'ai ecris ???
    oui je l'ai lu mais vu que j'etais au boulot j'ai pas pu telecharger ton outil,

    je teste ce soir !!!

    merci aussi à graphito pour ton aide !!

Discussions similaires

  1. Syntaxe incorrecte vers ')'
    Par Nako_lito dans le forum Services Web
    Réponses: 2
    Dernier message: 16/06/2008, 11h31
  2. [SQL Server 2000] Syntaxe incorrecte "CASE"
    Par Chtulus dans le forum Langage SQL
    Réponses: 12
    Dernier message: 23/05/2008, 15h53
  3. Syntaxe incorrecte vers le mot clé 'case'.
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/08/2007, 18h25
  4. [MySQL] syntaxe incorrecte
    Par tentsuken dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/07/2007, 14h03
  5. Syntaxe incorrecte vers 'where'.
    Par lepeintre dans le forum ASP
    Réponses: 15
    Dernier message: 19/05/2005, 11h57

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