Comment récupérer les handles des fenêtres d'un processus ? [Résolu]

Signaler
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
-
h60
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
-
Bonjour à tous

J'ai bêtement fais un copier coller du code que j'ai trouvé dans la rubrique
Comment récupérer les handles des fenêtres d'un processus ?
http://www.developpez.com/delphi/faq...dlefenetreproc

mais ce code ne compile pas

type
  PFindWindowsStruct = ^TFindWindowsStruct;
  TFindWindowsStruct =
record

    ProcessID: DWORD;
    HandleList: TList;
 
end
;

function
EnumWindowsProc(hwnd: HWND; lParam: LPARAM):
boolean
;
stdcall
;
var

  dwProcessId: DWORD;
begin

 
if
lParam <>
0
then

 
begin

    GetWindowThreadProcessId(hwnd, dwProcessId);
   
with
PFindWindowsStruct(lParam)^
do

     
if
dwProcessID = ProcessID
then

        HandleList.Add(
Pointer
(hwnd));
    result:=
true
;
 
end

 
else

    result:=
false
;
end
;

procedure
FindProcessWindows(ProcessID:
Integer
; Handles: TList);
var

  findWindowsStruct: TFindWindowsStruct;
begin

  findWindowsStruct.ProcessID:= ProcessID;
  findWindowsStruct.HandleList:= Handles;
  EnumWindows(@EnumWindowsProc,
Integer
(@findWindowsStruct));
end
;

Dans la fonction :
EnumWindows(@EnumWindowsProc, Integer(@findWindowsStruct));

j'ai le message : "Variable requise". N'étant pas un spécialiste je ne comprends pas ce message.

J'utilise Delphi 6 sous Windows XP SP2

Si vous avez une autre solution je ne suis pas contre bien que celle-ci me paraisse intéressante.

Pouvez-vous m'aider?

Merci de votre réponse.

<!-- / message -->

3 réponses

Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Merci à tous ceux qui ce sont interessés à mon problème

J'ai trouvé ma solution il fallait que j'écrive

EnumWindows(@TForm1.EnumWindowsProc, Integer(@findWindowsStruct));

à la prochaine
Messages postés
637
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
2
Bj H60,
Tu trouveras l'aide  de la fonction EnumWindows dans le SDK, fournie avec delphi!
il faut que tu vérifie que tes variables sont compatibles avec les paramètres passés dans la fonction.
C'est ce que je ferai en premier!...
bon code
Jean_jean
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
Salut,

j'ai testé ce code et il fonctionne très bien sous Delphi7 et Turbo-Delphi ???

 
@+
Cirec

<hr size="2" />