Hallo,
ich habe das Problem, dass EnumThreadWindows nicht die Callback-Funktion EnumThreadWndProc auslöst, was ich mit ShowMessage('OK') testen will. Ich weiss nicht wirklich woran es liegt. Es kommt keine Fehlermeldung. Die Thread ID wird korrekt ausgegeben (habs mit Winspector Spy überprüft). Vielleicht hat es damit zu tun:" An application must register this callback function by passing its address to the EnumThreadWindows function." Aber ich verstehe nciht wirklich was damit gemeint ist.
Delphi-Quellcode:
function EnumThreadWndProc(WND : HWND; HWNDName : String): Boolean; stdcall;
var wText : Array [0..250] of Char;
begin
ShowMessage('OK');
GetWindowText(WND,wText,SizeOf(wText));
If HWNDName=wText then
begin
destwindow:=WND;
result:=false;
end else
result:=true;
end;
function TForm1.WindowExists(name : String) : boolean;
var ID : Cardinal;
begin
GetWindowThreadProcessID(destwindow,@ID);
destwindow:=0;
EnumThreadWindows(ID,@EnumThreadWndProc,Integer(name));
If destwindow<>0 then
result:=true
else
result:=false;
end;
Danke
BurtaN