AGB  ·  Datenschutz  ·  Impressum  







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

Hook aus Service

Ein Thema von hesch21 · begonnen am 15. Mai 2012 · letzter Beitrag vom 29. Mai 2012
 
hesch21

Registriert seit: 31. Aug 2004
Ort: Basel
114 Beiträge
 
Delphi XE2 Enterprise
 
#13

AW: Hook aus Service

  Alt 22. Mai 2012, 09:23
So, nach längerem Üben melde ich mich zurück.
@ Zacherl: Danke für Deinen Tipp. Ich habe das mit APP_INIT nicht gekannt und über einen halben Tag investiert, um herauszufinden, um was es sich da handelt. Wenn ich es richtig begriffen habe, definiert man so eine Art von 'Service'-DLL, die dauernd geladen ist. Wohl deshalb kann man sie auch nicht mehr dynamisch mit LoadLibrary laden. Statisch geht und der Hook-EntryPoint kann ich auch ansteuern, nur der Hook scheint nicht aktiviert zu werden. Habe so ziemlich alles versucht, aber ich bekomme nie ein CallBack-Event. Habe deshalb diesen Ansatz wieder fallen gelassen.

@ Luckie: Lieber Michael, ich bewundere Dein enormes Wissen und Dein Engagement in diesem Forum. Ich habe auch bereits etliche Routinen von Dir angewandt, z.B. jene für die Kontrolle eines Service. Siehe weiter unten. Aber glaube mir, seit dem Erscheinen von Vista und dem Wegfall der GINA bin ich auf der Suche nach einer vernünftigen Lösung dafür, wie man über eine Tastenkombination einen Alarm auslösen kann, und zwar in jedem 'Zustand' (sprich Desktop) des Rechners. Die aktuelle Lösung über den KeyboardFilterDriver ist einfach unbefriedigend (du kannst Dir z.B. die Klimmzüge ausmalen, um das Ding vor den Antivirus-Programmen zu verbergen). Und ausserdem weiss ich einfach, dass es geht. Ich habe eine Testversion eines Konkurrenzproduktes im Haus und die können das (ohne KBFD). Der langen Rede kurzer Sinn. Bitte entschuldige, wenn ich unter diesen Umständen auf gewisse Art von Kritik ohne kontruktive Lösungsvorschläge etwas unwillig reagiere.

Stand der Dinge: Ich bin dann auf die Idee gekommen, ich könnte mit zwei Diensten arbeiten. Ein kleiner Dienst, welcher bloss den Hook lädt oder entlädt. Dann logischerweise die Hook-DLL welche über Pipe direkt mit dem Haupt-Service kommuniziert. Dieser Hauptservice kontrolliert über einen Timer periodisch, ob der Desktop gewechselt hat. Wenn ja, beendet er den kleinen Service und startet ihn neu.
Das ganze funktioniert unter XP super. Unter W-7 bekomme ich aber auf dem SetWindowsHookEx einen Fehler zurück LastError = Falscher Parameter. Da stehe ich nun wieder an!

Apropos Service aus Service beenden und neu starten. Wie gesagt, da verwende ich die Routinen von Luckie und würde anregen, die Funktionen noch mit einem Ext.. zu ergänzen. Vor allem die StartService ist innerhalb eines Service meist schon vorhanden. Und ein kleiner Schönheitsfehler: Der Status bei Fehler (z.B. falschem Namen) ist nicht -1 sondern 0.
Heinz Schneider
  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 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz