Показать сообщение отдельно
  #3  
Старый 28.11.2012, 11:19
reqyz reqyz вне форума
Начинающий
 
Регистрация: 13.02.2010
Сообщения: 104
Репутация: 10
По умолчанию

Функция 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');
Ответить с цитированием