Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Benutzer abmelden? (https://www.delphipraxis.net/27007-benutzer-abmelden.html)

Nikolas 2. Aug 2004 19:03


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:

CalganX 2. Aug 2004 19:16

Re: Benutzer abmelden?
 
Hi,
das meldet den User zwar nicht ab, sperrt aber den Computer:
Delphi-Quellcode:
LockWorkStation;
Chris

Nikolas 2. Aug 2004 19:20

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?

SirThornberry 2. Aug 2004 19:22

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

sCrAPt 2. Aug 2004 20:36

Re: Benutzer abmelden?
 
Falls du noch weitere Informationen zu LockWorkStation suchst dann solltest du in die MSDN gehen MSDN-Library durchsuchenLockWorkStation

XHelp 2. Aug 2004 20:54

Re: Benutzer abmelden?
 
Delphi-Quellcode:
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;
Hilft das hier weiter?

Nikolas 2. Aug 2004 21:44

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:

Christian Seehase 2. Aug 2004 21:55

Re: Benutzer abmelden?
 
Moin Toxman,

hast Du LockWorkstation denn mal ausprobiert?

XHelp 2. Aug 2004 21:56

Re: Benutzer abmelden?
 
Stimmt, LockWorkStation ist das was du brauchst.
Einfach
Delphi-Quellcode:
LockWorkStation;
reinschreiben und das wars.

CalganX 2. Aug 2004 21:58

Re: Benutzer abmelden?
 
Hi,
:cry: Habe ich doch oben geschrieben.

Dann musst du einfach nur das Passwort eingeben und gut ist. ;)

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr.
Seite 1 von 2  1 2      

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