Qui peut me renseigner ??
Publié : dim. 06/juin/2004 17:03
J'ai fait un petit code, parce que je ne comprends pas un truc:
En principe, la fonction suivante:
devrait retourner le nom de l'éxécutable qui a lancé la fenêtre correspondant au handle, et là, ce n'est pas le cas !
Quelqu'un sait pourquoi ?
J'ai fait ce petit code pour tester:
Pour tester que je trouve bien le bon handle, celui de la fenêtre, je change le titre pendant une seconde, et ça fonctionne.
Donc, pourquoi je ne récupères pas le nom de l'executable qui crée la fenêtre, c'est à dire celui de l'éditeur utilisé, mais le nom du fichier temporaire créé par le programme?
Chris
En principe, la fonction suivante:
Code : Tout sélectionner
GetWindowModuleFileName_(Handle,@Buffer, MaxChar)
Quelqu'un sait pourquoi ?
J'ai fait ce petit code pour tester:
Code : Tout sélectionner
#jaPBe = 1
#PureBasic = 2
Buffer.s = Space(#MAX_PATH)
Titre.s = Space(128)
;- Choix de l'éditeur
;Editeur = #jaPBe ; Si on utilise jaPBe
Editeur = #PureBasic ; Si on utilise PureBasic
If Editeur = #jaPBe
Class.s = "WindowClass_7"
Title.s = "jaPBe"
ElseIf Editeur = #PureBasic
Class.s = "WindowClass_0"
Title.s = "PureBasic - <New>"
EndIf
; Détection du Handle de la fenêtre principale
hMain = FindWindow_(Class,Title)
; Pour vérifier que le handle correspond à la bonne fenêtre, on récupère
; le titre, on le change pendant 1 seconde, puis on remet le titre d'origine
GetWindowText_(hMain,@Titre,128) ; Récupère le titre
SetWindowText_(hMain,"Coucou") ; Le change
Delay(1000) ; Attends 1 seconde
SetWindowText_(hMain,Titre) ; Remet le titre d'origine
; On récupère le nom de l'éxécutable correspondant à la fenêtre
GetWindowModuleFileName_(hMain,@Buffer,#MAX_PATH)
Debug hMain ; Handle de l'éditeur
Debug Buffer ; Nom de l'éxécutable
Donc, pourquoi je ne récupères pas le nom de l'executable qui crée la fenêtre, c'est à dire celui de l'éditeur utilisé, mais le nom du fichier temporaire créé par le programme?

Chris
