Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: API Hook funktioniert nicht global

  Alt 18. Jan 2011, 14:42
Das entscheidene wäre, zu wissen, wie und wo du diesen Code aufrufst. Wenn du eine Funktion in einem Fremdprozess hooken willst, musst du erst mal einen Thread in diesen Prozess injizieren, da deine beiden Prozesse ja verschiedene Adressräume haben.
Siehe den im ersten Post verlinkten Vorgängerthread.

Die HookIsClipboardFormatAvailable wird im Hook-Callback in der DLL aufgerufen:
Delphi-Quellcode:
function HookProc(code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  if FHook <> 0 then
  begin
    if code < HC_ACTION then
      Result := CallNextHookEx(FHook,code,wParam,lParam)
    else
    begin
      if (not FHooked) and (code >= HC_ACTION) then
      begin
        HookIsClipboardFormatAvailable;
        FHooked := true;
      end;
      Result := CallNextHookEx(FHook,code,wParam,lParam);
    end;
  end
  else
    Result := 0;
end;
Müsste nach meinem Verständnis also funktionieren...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat