Nur so als kleine Info...
Wenn man das in Lazarus mit {$Mode ObjFpc}{$H+} compilieren möchte, dann muß man die Fenstersuche als PtrInt deklarieren:
Delphi-Quellcode:
Function SearchCallback(Wnd: HWND; lParam: PtrInt): BOOL;
StdCall;
Var
ClassName:
Array[0..255]
Of Char;
Begin
Try
If GetClassName(Wnd, ClassName, 255) > 0
Then
Begin
If Pos('
CabinetWClass',
String(ClassName)) <> 0
Then slFoundWnd.Add(IntToStr(Wnd));
End;
Result:= True;
Except
On E:
Exception
Do ErrorLog('
SearchCallback'+#13#10+E.ClassName+#13#10+E.
Message);
End;
End;
Procedure SearchWnd;
Begin
Try
EnumWindows(@SearchCallback, 0);
Except
On E:
Exception
Do ErrorLog('
SearchWnd'+#13#10+E.ClassName+#13#10+E.
Message);
End;
End;
Dann funzt 32bit und 64bit ... Ohne die Umstellung funzt nur {$Mode Delphi}... aber nur als 32bit-EXE...
EDIT: Uses Interfaces; // oder man compiliert nur mit FPC und läßt den Overkill weg...