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

Langage Delphi Discussion :

Récuperer le Handle d'une zone de texte dans une application


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Récuperer le Handle d'une zone de texte dans une application
    Bonjour

    J'aimerais récuperer le handle de la zone de texte oû a été pressé une touche, et ce dans n'importe quel application.
    A l'heure actuel j'arrive à récuperer le handle d'une application sans probléme en utilisant ce code que j'ai placé dans l'évenement HookTimer1KeyUp (HookTimer est un petit composant qui vérifi l'appui de touche toute les 1milliseconde, ce qui évite de passer par un hook d'une dll pour surveiller le clavier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Handle := GetForegroundWindow;
    J'arrive aussi à récuperer le handle de la zone de texte de Notepad en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Handle := GetForegroundWindow;
    Handle := GetWindow(Handle, GW_CHILD);
    Le soucis c'est que le handle de la zone de texte n'est pas retourné pour toutes les applications (Zone de texte d'un site (google par exemple) dans les browsers Internet, zone de texte dans les logiciels, zone de texte dans l'explorateur, etc).

    Je vous en serais très reconnaissant si vous pouviez m'indiquer un morceau de code quoi soit capable de récuperer le handle de la zone de texte ou a été pressé la touche pour n'importe quel application !

    Merci !

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Si on récupére tous les handles des objets d'une fenêtre et on les testes un par un pour voir s'ils ont l focus. Ca pourrais marcher ?

    Mais alors là je n'ai aucune idée quand au code à utiliser

    A l'aide ! Please Help !

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    Points : 74
    Points
    74
    Par défaut
    Yop Anarchy2k3
    jete un coup d'oeil sur ce code la qui recupere l'url tapée sur l'edit internet explorer :

    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
     
    //merci a graf
    fito
    procedure TForm1.Button2Click(Sender: TObject); 
    var hiExplorer,ClientWork,Toolbar,ComboBox,ComboBoxChild,Edit:HWND; 
        wnd: HWND ; 
        i,Len:integer ; 
        result:array of char ; 
        s : string ; 
    begin 
    hIExplorer := FindWindow('IEFrame',nil); 
    //SetForegroundwindow(hIExplorer)  ; 
    //Handle de la fenêtre de travail 
    ClientWork:=FindWindowEx(hiExplorer,0,'WorkerA',nil); 
    if ClientWork=0 then //Compatibilité XP / 98 
        ClientWork:=FindWindowEx(hiExplorer,0,'WorkerW',nil); 
    // Handle de la ToolBar (casert pas) 
    Toolbar:=FindWindowEx(ClientWork,0,'ReBarWindow32',nil); 
    // Handle du ComboBox 
    ComboBox:=FindWindowEx(Toolbar,0,'ComboBoxEx32', nil); 
    ComboBoxChild:=FindWindowEx(ComboBox,0,'ComboBox',nil); 
    // Cherche le Handle du Edit 
    Edit:=FindWindowEx(ComboBoxChild,0,'Edit',nil); 
    //envoie les messages pour récupérer la longueur de l'URL 
    Len:=SendMessage(Edit,WM_GETTEXTLENGTH,0,0)+1; 
    // récupère l'URL (mais c'est juste pour le fun)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut

    En effet j'étais déjà tombé sur ce code hier soir mais malheuresement je ne vois pas trop comment l'adapté pour quil fonctionne sur toutes les fenetres et applications

  5. #5
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Je crois qu'on récupére le handle avec le focus via "getActiveWindow" ou bien "GetTopwindow(GetforegroundWindow,...)"
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut

    Merci Graffito pour ta réponse mais j'ai fini par trouver la solution de moi même, et sans utiliser ton code. Merci quand même

  7. #7
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Salut,

    Ce serait cool de partager !

    Je ne sais pas pourquoi GetTopwindow(GetforegroundWindow); ne fonctionne qu'avec le bloc notes.
    David.

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

Discussions similaires

  1. [AC-2007] Alimentation d'une zone de texte avec une zone de texte déroulante
    Par BRUNO71 dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/12/2010, 19h54
  2. Réponses: 1
    Dernier message: 18/02/2010, 11h38
  3. Réponses: 3
    Dernier message: 06/09/2006, 09h06
  4. Réponses: 3
    Dernier message: 02/11/2005, 02h45
  5. incrementation d'un format texte dans une zone de texte
    Par frederic.go dans le forum Access
    Réponses: 6
    Dernier message: 18/10/2005, 14h47

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