AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hook produziert wo Error?

Ein Thema von TStringlist · begonnen am 28. Jan 2004 · letzter Beitrag vom 28. Jan 2004
 
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#1

Hook produziert wo Error?

  Alt 28. Jan 2004, 05:12
Hallo,

ich bräuchte mal ein paar gute Inspirationen bezüglich einer Hookinstallation.

Und zwar möchte ich mittels eines Programmes 'A' einen Maushook in einem anderen Programm 'B' installieren.

[
Zuvor habe ich schon einen globalen Mousehook mit folgender Zeile erfolgreich zum Laufen gebracht:

HookHandle := SetWindowsHookEx(WH_Keyboard, @spcHookProc,HInstance, 0);

...und einen localen der quasi im eigenen Programm 'A' selbst installiert wurde mit dieser Installationszeile:

HookHandle := SetWindowsHookEx(WH_Mouse, @spcHookProc, 0, AThreadID);
]


Jetzt also zu Programm 'A' möchte in Programm 'B' einen Hook installieren. Dazu habe ich alsodann folgende Zeilen benutzt:

ZielWndHandle := FindWindow('TApplication', 'HookDestination');
AHInstance := GetWindowLong(ZielWndHandle, GWL_HINSTANCE);
AThreadID := GetWindowThreadProcessId(ZielWndHandle);
HookHandle := SetWindowsHookEx(WH_Mouse, @spcHookProc, AHInstance, AThreadID);

Der Effekt jedesmal war: Wenn ich mit der Maus auf Programm-Window 'B' drauffahre, gibt's folgenden Error:

---------------------------
HookDestination: ShowDateTime.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x01783518" verweist auf Speicher in "0x01783518". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.

Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------

Einerseits zeigt mir das zwar, dass der Hook auch bei Programm 'B' angekommen sein muss, andererseits kann ich mit dieser Errormeldung aber trotzdem irgendwie nichts richtiges anfangen. Eigentlich kann es ja nur an der Hook-Routine selbst liegen. Die allerdings habe ich zwecks Fehlersuche in der Zwischenzeit auf nur noch mehr eine einzige Zeile reduziert, nämlich diese:

Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);

Und beim anfänglichen globalen und localen Hook gab es da ja auch nie einen solchen Error, weder in der HookProc noch überhaupt. Hat eventuell irgendjemand eine Idee was das mit diesem Error auf sich hat, bzw. wie man den event. weg bekommt?

Thx schonmal im Voraus
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz