Как перехватить открытие чужого приложения

  • Автор темы lowuser
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

lowuser

#1
Пытаюсь перехватить открытие любого приложения в Windows XP
подскажите что я делаю не так:
в DLL ставлю глобальный HOOK:
procedure SetGlobalHook(InList:TListBox;out List:TListBox) stdcall;
begin
EList:= InList;
HookHandle:= SetWindowsHookEx(WH_SHELL, @ShellProc, HInstance, 0);
List:=EList;
end;
и потом в функции ShellProc пытаюсь отловить событие HSHELL_WINDOWCREATED и вставить заголовок окна и название класса окна в TListEdit:
ShellProc(Code: integer; WParam: WPARAM; LParam: LPARAM):LRESULT stdcall;
var
msg: PEVENTMSG;
Nm:Array[0..255] of Char;
Cs: Array[0..255] of Char;
begin
if Code >= 0 then
begin
result := 0;
msg := Pointer(WParam);
case msg.message of
HSHELL_WINDOWCREATED:
begin
GetWindowText(msg.hwnd,Nm,255);
GetClassName(msg.hwnd,Cs,255);
EList.Items.Add(String(Nm)+'/'+String(Cs));
end;
end;
End
else
result:= CallNextHookEx(HookHandle, Code, WParam, LParam);
end;
 
Статус
Закрыто для дальнейших ответов.