Einzelnen Beitrag anzeigen

BurtaN

Registriert seit: 25. Jan 2008
35 Beiträge
 
Delphi 2009 Professional
 
#1

Callback-Funktion wird nicht aufgerufen.

  Alt 21. Apr 2008, 10:11
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
  Mit Zitat antworten Zitat