Problem z systemowym Hookiem

0

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?

0

Co chcesz osiagnąć w tej lini ?
Result := CallNextHookEx(0, nCode, wParam, lParam);
wg. powinno być
Result := CallNextHookEx(Hook, nCode, wParam, lParam);
i wywołujesz nastepną funkcje filtrującą w łańcuchu.

pozdrawiam

0

Niestety nawet po wskazanej zmianie, uruchamiane programy nadal nie są widoczbne na pasku zadań

0

Nie jestem expertem w tych sprawach, ale może:

{...}
Result := CallNextHookEx(0, nCode, wParam, lParam);
// exit; - juz niepotrzebne
end
else Result := CallNextHookEx(0, nCode, wParam, lParam);

1 użytkowników online, w tym zalogowanych: 0, gości: 1