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

Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Dernière intervention
5 février 2012
- - Dernière réponse : h60
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Dernière intervention
5 février 2012
- 15 sept. 2007 à 09:02
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 -->
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Dernière intervention
5 février 2012
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de h60
Messages postés
641
Date d'inscription
dimanche 13 août 2006
Dernière intervention
13 décembre 2018
1
0
Merci
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
Commenter la réponse de cs_Jean_Jean
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
40
0
Merci
Salut,

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

 
@+
Cirec

<hr size="2" />
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.