lizard
Goto Top

VB6 Windows Abmeldung abfragen

Hi liebe Community!
Wieder muss ich euch belestigen*g*

Es geht hierbei um Visual Basic 6.
Ich möchte Abfragen, ob sich der Benutzer abmeldet oder nicht.

Hab zwar gegoogled, hab aber nix hilfreiches gefunden.
Alles was ich gefunden hab sind Code - Auszüge, welche mir sagen, wie ich den PC übers VB6 Runterfahren, Neustarten, ... kann.
Sonst hab ich aber leider nichts gefunden.

Wäre spitze, wenn mir jemand hierbei weiterhelfen könnte.

LG Jürgen

Content-ID: 89960

Url: https://administrator.de/forum/vb6-windows-abmeldung-abfragen-89960.html

Ausgedruckt am: 24.12.2024 um 01:12 Uhr

Logan000
Logan000 16.06.2008 um 15:40:58 Uhr
Goto Top
Moin

Ein paar mehr Details wären schon hilfreich.
Möchtest Du ermitteln welcher Benutzer sich gerade lokal an einer Machine angemeldet hat?
Lizard
Lizard 16.06.2008 um 15:42:16 Uhr
Goto Top
ne ich möcht wissen, ob sich der benutzer gerade abmeldet.
Also ob die Abmeldung des Benutzers gerade durchgeführt wird.
Logan000
Logan000 16.06.2008 um 15:57:48 Uhr
Goto Top
Hmm

Soweit ich weiß läßt Sich nur der aktuell angemeldete Benutzer ermitteln.
Wenn Du die natürlich zum Zeitpunkt der Abmeldung abfragst hast du das gewünschte Ergebnis.
Ich kann dir allerdings nicht sagen wie du feststellst ob gerade eine Abmeldung durchgeführt wird.

Wozu brauchst Du sowas?
Lizard
Lizard 16.06.2008 um 16:03:53 Uhr
Goto Top
Kurz gesagt hab ich ein Programm, welches mittels Benutzer und Passwort geschützt ist.
Das heist auch, dass die Benutzer nicht erlaubt sind dieses Programm zu beenden.

Nun ist aber das Problem, dass wenn der Benutzer sich abmeldet, dass er das Programm nicht schließen darf.

Aber im Fall einer Abmeldung, soll "der Benutzer" das Programm schließen können.

Halbwegs verständlich?^^
Logan000
Logan000 16.06.2008 um 16:52:09 Uhr
Goto Top
Na Ja Halbwegs

Also wenn ich ein Programm einsetzen soll was sich nicht beenden läßt würd ich's lassen.
Aber das ist nur meine Persönliche Meinung.

Ist es zwingend das das Programm vom Benutzer beendet wird?
Denn ich meine bei der Abmeldung killt Windows offene Benutzer Prozesse.

Gruß L.
misterdemeanor
misterdemeanor 17.06.2008 um 11:43:51 Uhr
Goto Top
Hallo Jürgen!

Ich möchte Abfragen, ob sich der Benutzer abmeldet oder nicht.

Am besten wäre es dann ja wenn Du direkt von Windows informiert wirst ob sich ein Benutzer gerade abmelden (will). Ein Glück das Windows (XP) in diesem Fall auch eine Nachricht an alle Anwendungen schickt.

Um diese Nachricht abzufangen brauchst Du lediglich eine eigene Windows Procedure in z.B. Deinem MainForm. An diese WindowsProc schickt Windows nähmlich alle sogenannten WindowsMessages. Darunter (ab Xp) auch die WM_WTSSESSION_CHANGE Message. Damit kannst Du weiter afragen was sich an der Session denn ändert. z.B. ob sich ein Benutzer abmeldet.

Dazu hatte ich mal in einen anderem Thread ein paar Zeilen Code gepostet:

Sperrung des Computers erkennen - Visual Basic 6


Relevant für Dein vorhaben wäre dann WTS_SESSION_LOGOFF.

Solltest Du noch Fragen haben oder die Zielplattform nicht WinXP sein melde Dich nochmal face-wink

BG, Felix -misterdemeanor- Bahrenburg
Lizard
Lizard 19.06.2008 um 09:14:44 Uhr
Goto Top
Hiho.
Danke für den Hinweis.
Was ich da so durchgelesen habe, ist es das was ich benötige.
Dich irgendwie scheitert es bei mir beim Aufruf.

Steht iwie grad voll auf der Leitung.

Hab den Code in ein Modul gegeben.
Beim Form Load hab ich folgendes drinnen
call hook

und beim unload:
call unhook

Nur was muss ich beim load noch mitübergeben?
Danke schonmal
misterdemeanor
misterdemeanor 19.06.2008 um 09:24:56 Uhr
Goto Top
Hallo Lizard!

Nur was muss ich beim load noch mitübergeben?

Du meinst beim Aufruf der Methode Hook? Wenn dem so ist dann ist die Antwort:
Den WindowsHandle des Forms (Me.Hwnd).

BG, Felix -misterdemeanor-
Lizard
Lizard 19.06.2008 um 09:27:43 Uhr
Goto Top
perfekt.
das meinte ich danke face-smile

* EDIT *
Naja nicht so perfekt, wie ich gerade merke.
Weil irgendwie will der mir bei der Abmeldung nicht in ein File schreiben.

Wie soll den das mit der Anmeldung funktionieren?
Also mit:
WTS_SESSION_LOGON