Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Hook für msgina.dll erstellen (https://www.delphipraxis.net/120331-hook-fuer-msgina-dll-erstellen.html)

Baeuerle 9. Sep 2008 12:44


Hook für msgina.dll erstellen
 
Hallo,

ich mochte einen Hook für msgina.dll erstellen, damit ich bestimmte Ereignisse abfangen kann.
Der Hook soll 'WlxLoggedOnSAS' abfangen.

Hat jemand eine Ahnung wie das realisierbar ist?

thx

baeuerle

Luckie 9. Sep 2008 12:46

Re: Hook für msgina.dll erstellen
 
Dies macht man üblicherweise nicht über einen Hook, sondern mit eine Erweiterung der Gina.

Baeuerle 9. Sep 2008 12:53

Re: Hook für msgina.dll erstellen
 
Und wie???

Zur Erklärung:

Ich habe eine Anwendung die mitbekommen soll, wann der Rechner heruntergefahren, ein Benutzer abgemeldet... wird. Die Anwendung soll den Vorgang unterbrechen etwas ausführen und dann den entsprechnden Vorgang (Shhutdown,reboot...) wieder starten/fortsetzen.

nicodex 9. Sep 2008 13:06

Re: Hook für msgina.dll erstellen
 
Zitat:

Zitat von Baeuerle
Ich habe eine Anwendung die mitbekommen soll, wann der Rechner heruntergefahren, ein Benutzer abgemeldet... wird. Die Anwendung soll den Vorgang unterbrechen etwas ausführen und dann den entsprechnden Vorgang (Shhutdown,reboot...) wieder starten/fortsetzen.

Ich habe sowas mal unter Windows NT (4.0) machen müssen. Das Problem war in diesem Fall, dass sich der Rechner per DFÜ-Verbindung bei Zentralrechner abmelden sollte. Allerdings funktioniert RAS nicht mehr, wenn der Shutdown bereits eingeleitet wurde. Im Endeffekt lief es daruaf hinaus, dass ich _vorher_ wissen musste ob Windows heruntergefahren wird. Die schnellste (und ausreichend sichere Methode) war damals die Verwendung der MadCollection für einen ExitWindows-Hook (und ähnliche).

a) Unter Vista gibt es keine GINA.
b) Mit Delphi kannst du keine 64-Bit Module entwickeln

Als Alternative kommt noch die Entwicklung eines Dienstes in Frage (die sauberste Lösung). Die können auf diverse Ereignisse reagieren.

Baeuerle 9. Sep 2008 14:37

Re: Hook für msgina.dll erstellen
 
ok, dann scheidet GINA schon einmal aus. Soll schließlich ab Win98 funktionieren.

Eine Lösung ist auch WM_QUERYENDSESSION, jedoch kann ich hier nicht erkennen, ob ein Shutdown oder ein Reboot vorliegt. Kann das irgendwie ermittelt werden?

Ich bekomme nur die Meldungen ENDSESSION_CLOSEAPP und ENDSESSION_LOGOFF.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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