Функция WaitForInputIdle ждет до тех пор, пока заданный процесс не дождется ввода данных пользователем, без задержки ввода, или до тех пор, пока не истечет интервал блокировки по времени.
не то
Ладно, как поставить хук на конкретный мною известный поток, в библиотеке
Код:
library dll;
uses
SysUtils,
windows,
Classes;
var
Hook:HHOOK;
Handle:THandle;
HCBT2:longword;
function CreateWND(code: integer; wParam: word; lParam: longword): longword; stdcall;
begin
if Code<0 then
begin
Result := CallNextHookEx(Hook, code, WParam, LParam);
exit;
end;
if(code=HCBT2)then
begin
Handle:=wParam;
UnhookWindowsHookEx(Hook);
end;
end;
function SetWnd(HCBT,dwThreadId:longword):THandle;
begin
Handle:=0;
HCBT2:=HCBT;
Hook:=SetWindowsHookEx(WH_CBT,@CreateWND,HInstance,dwThreadId);
repeat
until(Handle>0);
end;
exports
SetWnd;
end.
Hook возвращает 0 и хук не ставится.
вызываю так
Код:
var
SetWND:function(HCBT,dwThreadId:longword):THandle;
dll:=LoadLibrary('dll.dll');
@SetWND:=GetProcAddress(dll,'SetWnd');