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 :

Les handles windows


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Points : 496
    Points
    496
    Par défaut Les handles windows
    Bonjours tout le monde.
    En faite mon problème n'est pas en Delphi, mais en C. Mais quand je recherche sur internet, toute les conversation que je trouve sont en Delphi, et le nom des fonctions utilisées sont les mêmes.
    Donc une mise en situation rapide :
    Je veux écrire dans un programme (Notepad, Word, Firefox...) en utilisant mon application. Donc il faut utiliser une certaine fonction postmessage() qui a besoin comme argument du HWND (qui au passage je ne sais pas ce que c'est ) de la fenêtre ou écrire. Sauf que ce HWND il est difficile de le connaitre sans le classname de la fenêtre.
    Sur la page perso de l'un des membres de developpez (denokan), j'ai pu trouver un fabuleux petit utilitaire qui vous donne le Handle de la fenêtre sur lequel pointe la souris.
    Cette utilitaire me donne par exemple le handle de Notepad. Comment dire à mon programme que je veux écrire sur ce handle là?
    N'hésitez pas à m'envoyer des sources en Delphi, à force j'ai pu m'adapter.
    Encore merci à vous.

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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 922
    Points : 6 038
    Points
    6 038
    Par défaut
    Un handle est l'identifiant unique attribué par l'OS à une ressource.

    As-tu regardé dans la ou les sources Delphi de Developpez ?

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Cherche sur le Forum "FindWindow NotePad", tu y trouveras des messages interessants, sinon celui-ci, ou l'on parle de WindowSpy, un outil dispo sur Phidels avec les sources ... qui fait le truc de la souris

  4. #4
    Membre confirmé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Points : 496
    Points
    496
    Par défaut
    @qi130 : Désoler j'y vais tout de suite voire à la FAQ.
    @ShaiLeTroll : Je crois que vous n'avez pas bien saisie seque je veux faire.
    Je possède déjà un int qui représente le Handle de la fenêtre voulue. Par exemple 123456. Comment faire pour dire à mon application de sélectionner cette fenêtre?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Sur la page perso de l'un des membres de developpez (denokan), j'ai pu trouver un fabuleux petit utilitaire qui vous donne le Handle de la fenêtre sur lequel pointe la souris.
    Les handles sont attribués *dynamiquement* par l'OS. Donc il ne faut pas se baser sur ces valeurs récupérées à un instant t, mais plutôt en utilisant des APIs comme FindWindows (cf Google).

    Comment faire pour dire à mon application de sélectionner cette fenêtre?
    Si ton application a le focus, utilises SetForegroundWindow :
    http://msdn.microsoft.com/en-us/libr...39(VS.85).aspx

  6. #6
    Membre confirmé Avatar de saad.hessane
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 315
    Points : 496
    Points
    496
    Par défaut
    Merci pour les réponses.
    J'arrive à faire un truc, c'est écrire dans Notepad. C'est simple de le faire, car la fenêtre ne contient que un simple contrôle EDIT.
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        HWND hNp = FindWindow("Notepad",NULL);
        HWND hEditNp = FindWindowEx(hNp,NULL,"Edit",NULL);
        PostMessage(hEditNp,WM_CHAR,'M',0);
    Maintenant comment on fait pour écrire dans des fenêtres bourrés de contrôles? Comment faire pour changer l'adresse URL?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Maintenant comment on fait pour écrire dans des fenêtres bourrés de contrôles?
    Nous dirons que c'est "loin d'être trivial"

    Comment faire pour changer l'adresse URL?
    Pour envoyer des touches (et à la limite tu dois pouvoir utiliser "tab" pour naviguer d'un contrôle à l'autre), regarde du côté de keybd_event :
    http://msdn.microsoft.com/en-us/libr...04(VS.85).aspx

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Faut connaître l'agancement des controls, voir la fonction GetEnfants (appelé récursivement) ICI, tu obtiendras ça pour Delphi par Exemple (voir Image Jointe)

Discussions similaires

  1. le Handle dans les APIs windows ?
    Par gootsu dans le forum Windows
    Réponses: 8
    Dernier message: 02/06/2006, 15h40
  2. Comment obtenir les Handles des boutons systèmes de Windows ?
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 22/12/2004, 22h20
  3. Informations sur un exe (dans les propriétés windows)
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 06/07/2004, 18h20
  4. Réponses: 2
    Dernier message: 06/04/2004, 08h39
  5. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45

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