WAIT_TIMEOUT das bedeutet deine Funktion kehrt nicht zurück weil keine Messages im Queue liegen.
Die sich ergebenden Fragen sind nun:
- WaitForInputIdle() welche Parameter hast du benutzt ?
- ist deine Anwendung eine Consolen Anwendung ?
- wird deine Anwendung mit Application.Run gestartet ?
- hast du einen Quelltext der das Problem demonstriert ?
Du möchtest den Messagequeue leeren ? Warum benutzt du nicht folgendes ?
Delphi-Quellcode:
procedure ClearMessageQueue;
var
Msg: TMsg;
begin
while PeekMessage(0, 0, $FFFF, Msg, pm_Remove) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
Gruß hagen