begin process at 2008 07 05 13:35:19
1 205 183 membres
159 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment récupérer les handles des fenêtres d'un processus ? [ Système / Périphérique ] (H60)

Comment récupérer les handles des fenêtres d'un processus ? le 14/09/2007 14:23:25

H60
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 <> 0then
  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.

Re : Comment récupérer les handles des fenêtres d'un processus ? le 14/09/2007 18:00:46

Jean_Jean
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

Re : Comment récupérer les handles des fenêtres d'un processus ? le 14/09/2007 19:04:18

cirec
Membre Club
(Admin CS)
Salut,

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

 
@+
Cirec


Re : Comment récupérer les handles des fenêtres d'un processus ? le 15/09/2007 09:02:56

H60
Réponse acceptée !

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



Classé sous : end, hwnd, processid, handles, findwindowsstruct

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Redaction texte pour s...
Budget : 180€
Travail graphique- ill...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS