Mam taki kod na systemowego hooka:
var Hook : HHOOK;
function HookProc(nCode, wParam, lParam : integer) : LRESULT; stdcall;
var Buf, FName : PChar;
i : integer;
hMod : THandle;
begin
if nCode in [HSHELL_WINDOWCREATED, HSHELL_WINDOWDESTROYED] then
begin
Result := 0;
buf := strAlloc(255);
hMod := GetClassLong(wParam, GCL_HMODULE);
GetModuleFileName(hMod, buf, 255);
if nCode = HSHELL_WINDOWCREATED
then
//zrob
strDispose(buf);
exit;
end;
Result := CallNextHookEx(0, nCode, wParam, lParam);
end;
procedure EnableHook; stdcall;
begin
Hook := SetWindowsHookEx(WH_SHELL, @HookProc, hInstance, 0); end;
procedure DisableHook; stdcall;
begin UnhookWindowsHookEx(Hook);
end;
Problem w tym, że po założeniu takiego Hooka wszystkie uruchamiane aplikacje nie są widoczne na pasku zadań!!
Dlaczego? Co trzeba zrobić,aby były widoczne?