![]() |
Benutzer abmelden?
Ich würde gerne wenn ich kurz vom Computer weg bin, ihn daduch zumachen, dass ich nur den Benutzer wechsle, so dass danach das Passwort eingegeben werden muss, nicht aber alle Programme wieder gestartet werden müssen. Ich hab bis jetzt nur Code gefunden, der den Computer ausschaltet oder mich ganz abmeldet und dann dauerts bis ich wieder alles am Laufen habe. :wall:
Hat da jemand ein passendes Flag oder eine Idee für mich? :angle2: |
Re: Benutzer abmelden?
Hi,
das meldet den User zwar nicht ab, sperrt aber den Computer:
Delphi-Quellcode:
Chris
LockWorkStation;
|
Re: Benutzer abmelden?
Danke. Nur bevor ich das jetzt ausprobiere, eine kleine Frage noch: Wie öffne ich sie wieder?
Nochwas: Warum kennt mein F1 die functionprocedure (?) nicht, kompiliert sie aber trotzdem? |
Re: Benutzer abmelden?
das kommt aufs gleiche raus als wenn du Strg+Alt+Entf und dann auf arbeitsstation sperren klickst. Deine Hilfe kennt die Function nicht weil es eine Api-Funktion ist und du vermutlich nicht in dieser Hilfe gesucht hast sondern in der allgemeinen delphihilfe
|
Re: Benutzer abmelden?
Falls du noch weitere Informationen zu LockWorkStation suchst dann solltest du in die MSDN gehen
![]() |
Re: Benutzer abmelden?
Delphi-Quellcode:
Hilft das hier weiter?
procedure TfrmShutDown.SpeedButton1Click(Sender: TObject);
var hToken: THandle; tkp: _TOKEN_PRIVILEGES; returnLength: Cardinal; begin if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid); tkp.PrivilegeCount := 1; tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; if AdjustTokenPrivileges(hToken, false, tkp, 0, nil, returnLength) then begin case (Sender as TComponent).Tag of 0: ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0); 1: ExitWindowsEx(EWX_REBOOT, 0); 2: ExitWindowsEx(EWX_LOGOFF, 0); 3: ExitWindowsEx(EWX_FORCE, 0); end; end; end; end; |
Re: Benutzer abmelden?
@ XHelp: Danke, das hatte ich schon so ähnlich gefunden. Damit kann ich aber nur auschalten, rebooten oder mich ganz abmelden.
@ SirT: Wo kann ich da meine Arbeitsstation sperren? Ich glaub ich versuchs mal damit, dass ich so tue, als ob der User die Tastenkombination fürs Benutzerwechseln gedrückt hätte. Damit müsste ich eigentlich was hinbekommen. :roll: |
Re: Benutzer abmelden?
Moin Toxman,
hast Du LockWorkstation denn mal ausprobiert? |
Re: Benutzer abmelden?
Stimmt, LockWorkStation ist das was du brauchst.
Einfach
Delphi-Quellcode:
reinschreiben und das wars.
LockWorkStation;
|
Re: Benutzer abmelden?
Hi,
:cry: Habe ich doch oben geschrieben. Dann musst du einfach nur das Passwort eingeben und gut ist. ;) Chris |
Re: Benutzer abmelden?
Ich hab's jetzt auch damit gemacht. Vielen Dank an alle :hello:
In der Zwischenzeit bin ich auch auf diese Lösung gestoßen:
Delphi-Quellcode:
Ist leicht abgewandelt ein Post von Daniel B (
KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), 0, 0);
KeyBd_Event(Ord('L'), MapvirtualKey(Ord('L'), 0), 0, 0); KeyBd_Event(Ord('L'), MapvirtualKey(Ord('L'), 0), KEYEVENTF_KEYUP, 0); KeyBd_Event(VK_LWIN, MapvirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0); ![]() |
Re: Benutzer abmelden?
Hi,
nur macht
Delphi-Quellcode:
exakt das selbe. ;)
LockWorkStation;
Chris |
Re: Benutzer abmelden?
Das hab ich auch vorhin festgestellt, nachdem ich etwa 1 Stunde einfach den Button auf meinem Form übersehen habe in den ich das Lockworkstation schon geschrieben hatte :wall: und dann weiter nach einer anderen Lösung gesucht hab. :?
|
Re: Benutzer abmelden?
@X-Help: Hast du eine Ahnung, warum sich Win2000 Pro, wenn es EWX_LOGOFF von einem Service erhält, abmeldet und dann auf ein erneutes EWX_LOGOFF mit Shutdown reagiert? Wie kann ich das umgehen?
|
Re: Benutzer abmelden?
Zitat:
|
Re: Benutzer abmelden?
Zitat:
Vielleicht möchtest du, lieber Frager, ja auch auf das Windows XP "Fast User Switching" anspielen. In diesem Falle kann ich nur empfehlen sich mal die WTS*-Funktionen anzuschauen. |
Re: Benutzer abmelden?
@Asserbad:
Ich möchte lediglich wissen, wie ich meinem Service zeigen kann, das noch ein "richtiger" User angemeldet ist! Damit gerade dieses Herunterfahren nicht passiert. Hat einer ein Stückchen Quelltext zur Hand, zum Beispiel eine Funktion für o.g., das wär echt nett! |
Re: Benutzer abmelden?
Benutze doch einfach den Code aus meinem Loggedon2. Dort wird ja abgefragt, ob es noch weitere eingeloggte Benutzer gibt.
Ab XP wird's sowieso schwer, weil dann Terminal Sessions ins Spiel kommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 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