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
