begin process at 2012 02 09 12:53:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > RECHERCHER UNE FENETRE PAR SA CLASSE ET UNE PARTIE DE SON TITRE

RECHERCHER UNE FENETRE PAR SA CLASSE ET UNE PARTIE DE SON TITRE


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Classé sous :FindWindowEx, GetWindowText, PostMessage, ClassName Niveau :Débutant Date de création :28/02/2008 Vu / téléchargé :3 402 / 276

Auteur : Guillemouze

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Cette source vient en réponse au message
http://www.delphifr.com/infomsg_HANDLE-FEN ETRE-PRECISE_1081910.aspx

Il est possible que la recherche d'une instance de fenêtre par sa classe ne fonctionne pas si plusieurs fenêtres ont la même classe, ou si il y a plusieurs instances de lancées.

Les intérêts de cette source sont:
- l'utilisation de FindWindowEx
- la lecture du titre d'une fenêtre par GetWindowText
- l'envoi/réception de message (par PostMessage)


Remarque : Si on lance l'exécution depuis Delphi, on retrouve aussi l'instance en design dans l'IDE !


 Conclusion

Voici une source assez simpliste mais qui permet de comprendre facilement (je l'espère) le principe d'une recherche de fenêtre (au TopLevel).
Si vous voulez que je pousse plus la source, dites le moi (rechercher dans les fenêtres enfants, ...)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

TEXTIMAGE : UNE TIMAGE QUI INTERCEPTE LE ENTER / LEAVE DE LA...
Source avec Zip Source avec une capture TCHECKEDGROUPBOX : TGROUPBOX PRÉCÉDÉ D'UNE CHECKBOX
Source avec Zip COMPOSANT EDIT PERMETTANT DE SAVOIR QUI A MODIFIE LE TEXTE D...

 Sources de la même categorie

Source avec Zip LECTURE DE LA MEMOIRE D'UN AUTRE PROCESSUS par Mokost
Source avec Zip Source avec une capture LIBÉRER LA TAILLE MAXIMALE D'UNE FENÊTRE PAR SUBCLASSING par rt15
Source avec Zip Source avec une capture OBSERVATEUR DE PROCESSUS ACTIFS; VPROCESS 1,0 par Neftali
UN SELECTDIRECTORY QUI SE PLACE AU BON ENDROIT par ThWilliam
Source avec une capture VOTRE PROGRAMME DE MAIL COMME CLIENT MAIL PAR DÉFAUT SOUS WI... par MAURICIO

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COULEURS SYSTÈME par Jean_Jean

Commentaires et avis

Commentaire de Delphiprog le 28/02/2008 23:37:17 administrateur CS 7/10

"Si on lance l'exécution depuis Delphi, on retrouve aussi l'instance en design dans l'IDE !"
Pour contourner cela, il suffit de lui affecter un titre au moment du démarrage de l'application, dans le OnCreate de la fiche principale, par exemple. Evidemment, si tu démarres une autre instance de l'exécutable, ça ne va pas résoudre le problème.

NB : pas besoin de mettre des Self un peu partout pour désigner l'instance actuelle de la fiche (Self.Handle, Self.Caption, etc).

J'ai bien aimé l'utilisation de IfThen pas souvent rencontrée sur ce site. Mais je crois me souvenir qu'elle n'est disponible que depuis delphi 6. Pauvre Japee, il va devoir adapter le code... :)

Commentaire de Guillemouze le 29/02/2008 09:50:27

merci pour le commentaire.

2 remarques :
- "Pour contourner cela, il suffit de lui affecter un titre au moment du démarrage de l'application": c'est fait, mais la recherche par classe me retourne obligatoirement l'instance de l'IDE
- J'ai peut être abusé de self, mais je trouve ca plus confortable quand on utilise des propriétés d'objets dont on ne sait pas si elles appartiennent a self ou si c'est une variable locale

Désolé Japee, je te ferai une version en assembleur prochainement ;)
peut-on savoir dans quelles versions de Delphi on été ajoutées les fonctions?

Commentaire de yannfrance le 04/03/2008 16:23:28 10/10

Merci beaucoup, cette source est une mine d'or.
Beaucoup disaient qu'il était impossible de rechercher un handle avec une seul partie de text de la barre de titre.
Tres content, merci beaucoup...
Ou peut t'on trouver les informations necessaires pour réaliser des sources comme celui-ci ?

Commentaire de Guillemouze le 04/03/2008 19:21:46

merci yannfrance
toutes les infos propres a la manipulation de windows se trouvent dans ... l'aide de la sdk de windows (dans le menu "aide->windows SDK" sur mon D7).
mais une partie est déjà encapsulée dans des fonctions delphi ... donc dans l'aide de delphi.

sinon, MSDN reste une valeur sure, mais un peu galère pour y faire des recherches des fois.

Commentaire de hfr11 le 30/04/2008 11:00:57

Bonjour, suites à tes propos dans la rubrique "Conclusions" :
Oui, il serait intéressant d'approfondir tout cela... Je suis actuellement confronté à ce genre de problématique dans le développement d'utilitaires orientés "gestion des machines sur le réseau".
J'ai, dans mon application, une petite fenêtre que nous appellerons "tableau de contrôle" où sont créés, dynamiquement, des boutons permettant d'activer, de fermer, d'actualiser, etc..., des fenêtres dynamiques correspondant chacune à une machine différente... Comment faire de manière simple, pour que chaque bouton soit facilement référençable vers sa fenêtre correspondante. Plus compliqué encore si l'on sait qu'à partir de chacune des machines, donc des fenêtres dynamiques, on peut encore lancer des tâches spécifiques créant chacune sa fenêtre de gestion et d'affichage, tout cela en multi-threading pour simplifier encore, bien entendu.
Actuellement je fais tout cela à partir de tableaux dynamiques, des "handle" et des "tag" mais c'est assez compliqué et je pense en avoir encore pour un petit moment avant d'avoir réussi à résoudre tous les difficultés rencontrées.
Au plaisir donc de pouvoir te lire prochainement sur ce thème si tu as de bonnes idées, merci d'avance, cordialement, Patrice

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Erreur [ par delphi ] elle est ou l erreur svp ici :ShowWindow(FindWindowEx(FindWindowEx(FindWindowEx(FindWindowEx(FindWindow('AOL Frame25','AOL'),0, 'MDI Client',nil),0,'A Sous Class [ par delphi ] Salut je voudrais savoir comment passer une sous class avec delphi ??par exemple avec vb ça se fait comme ça :Public Declare Function ShowWindow Lib " Erreur svp aide!!!! [ par Shadow ] varAol, Mdi, Toolbar, tool, aoledit, combo:string;beginAol:= FindWindow('AOL Frame25',nil);Toolbar:= FindWindowEx(Aol,0,'AOL Toolbar', nil);tool:= Fin Comment envoyer un fichier sql par courrier electronique ? [ par Zangdar ] On m'a donné ceci sur le forum de "developpez" et on m'a dit d'utiliser le composant "SNMTMTP" et le code ci-dessous, mais ca ne fonctionne pas chez m PostMessage et compagnie.... please [ par wixiz ] salut tout le monde, en fait je voudrais pouvoir controler l'ordi avec un prog, comme si c'est l'utilisateur qui le faisait. Concretement : par ex, je ptit prob avé Delphi :( [ par slywuyl ] Voila.... j'aimerais que quand je cliques sur un bouton 1 ca execute le contenu du bouton 2 qu'en gros ca simule l'appui sur le bouton 2.... J'ai déja PostMessage / SendMessage [ par phoenyx ] Salut,j'ai besoin d'intéroger une fonction d'un objet (dont je n'ai pas les sources) d'une form et j'ai besoin de son résultat. J'utilise donc SendMes instanciation ou cast a partir du classname [ par Guillemouze ] salutalors voila ce que je voudrai faire:j'ai une classe Tancetre, et 2 classes Tfils1, Tfils2et 3 proceduremafonction(val:Tancetre) mafonction(val:Tf DLL freeze avec GetWindowText....pitié...ca me rend dingue.. [ par davidfdm2002 ] J'ai une DLL Delphi faite pour JAVA ,initialement conçu avec Delphi 6.Une fonction de la DLL permet de denombrer le nombre de fenetres portant un cert PostMessage [ par la_gavorade ] Bonjour à tous, J'ai un soucis avec PostMessage (ça va être un peu long, je vous préviens) : Voilà, j'ai fait une appli qui entre autres lance un pr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales