Toon posts:

[Delphi] Windows laten afsluiten

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben in Delphi bezig met een hele simpele beveiliging, maar ik wil dat de pc zich afsluit(niet crashen) als iemand het verkeerde wachtwoord intypt.
weet iemand of heeft iemand een programma'tje die dit doet OF een stukje delphi code hiervoor?

Verwijderd

ik denk dat dit het verkeerde forum is, ff vragen of ze hem will verplaatsen :)

Ik zou het zelf niet weten

Verwijderd

Topicstarter
toen ik ging zoeken op delphi kwamen de meeste berichten uit stuffis generalis, maar als er dan TOCH betere forums voor zijn verplaats dan maar

Verwijderd

Topicstarter
heb um zelf al verplaatst naat Programming & Webscripting

reageer DAAR aub, en niet hier
sorry van ut foutje

  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

Volgens mij kun je gewoon via t execute-commando (geen idee wat dat is in Delphi) explorer.exe oproepen met een bepaalde parameter...
en ik move em naar P&W..

Verwijderd

windows afsluiten kan met: ExitWindowsEx

Verwijderd

Topicstarter
Verwijderd schreef op 09 augustus 2002 @ 21:36:
windows afsluiten kan met: ExitWindowsEx
verder geen parameters of variabelen oid. nodig?

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

Type ExitWindowsEx ergens in de delphi-editor.
Ga met je curror op dat woord, druk F1.

Delphi zit best slim in elkaar hoor!

Siditamentis astuentis pactum.


Verwijderd

Topicstarter
owja, F1 is de help...
jaah, sorry ben nie zo erg slim...

Verwijderd

Topicstarter
ben nou paar dagen verder, maar nog steeds wil ExitWindowsEx niet werken...
heb de help doorgelezen, maar ut lukt niet.

ik ben geen ervaren programmeur, maar wil ut wel werkend hebben.
kan iemand me helpen?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
en als je dit aanroept: "user32dll.exe user,exitwindows" ? Werkte in Win9x altijd

Verwijderd

Verwijderd schreef op 11 augustus 2002 @ 11:41:
ben nou paar dagen verder, maar nog steeds wil ExitWindowsEx niet werken...
heb de help doorgelezen, maar ut lukt niet.

ik ben geen ervaren programmeur, maar wil ut wel werkend hebben.
kan iemand me helpen?
welke versie van windows?

Verwijderd

Topicstarter
doet nix, ken win2k
mischien dat ut daarmee te maken heeft

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
msdn al gecheked? Windows API reference?

Verwijderd

Topicstarter
msdn?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Lol?

http://msdn.microsoft.com

Alles wat je moet weten over progging in Windows. Ik twijfel alleen of er iets over Delphi te lezen is. Maar genoeg voorbeeld en uitleg over de Windows API.

Verwijderd

ok, hier een voorbeel voor win2k/xp:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function SetPrivilege(privilegeName: STRING; enable: boolean): boolean;
VAR
   tpPrev,
      tp            : TTokenPrivileges;
   token            : THandle;
   dwRetLen         : DWord;
BEGIN
   result := False;
   OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES OR TOKEN_QUERY, token);
   tp.PrivilegeCount := 1;
   IF LookupPrivilegeValue(NIL, pchar(privilegeName), tp.Privileges[0].LUID) THEN
   BEGIN
      IF enable THEN
         tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
      ELSE
         tp.Privileges[0].Attributes := 0;
      dwRetLen := 0;
      result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);
   END ELSE showmessage(privilegename + ' not found');
   CloseHandle(token);
end;

function Shutdown(Force: boolean): boolean;
BEGIN
   SetPrivilege('SeShutdownPrivilege', true);
   IF force THEN 
     exitwindowsex(EWX_POWEROFF OR EWX_FORCE, 0)
   ELSE 
     exitwindowsex(EWX_POWEROFF, 0);
end;

.
.
.
procedure .....
begin
  Shutdown(false);
end;



de EWX_POWEROFF kan je veranderen door de andere waardes die in de help staan, voor bv een logoff of een reboot.

Verwijderd

Topicstarter
ik zal eens kijken hoever ik hiermee kom deur, alvast erg bedankt voor de moeite...

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 31-08 21:58

Delphi32

Heading for the gates of Eden

Om Windows2000 te laten afsluiten moet je programma het SE_SHUTDOWN_NAME privilege hebben, en dat moet je weer zetten met AdjustTokenPrivileges. Maar omdat je blijkbaar niet erg bedreven bent in de Windows API, zou je ook voor een Logoff kunnen kiezen:
code:
1
if not ExitWindowsEx(EWX_LOGOFF, 0) then RaiseLastWin32Error;


Dan sluit ie je systeem niet af maar kom je weer in de Logon van Windows. Wellicht kun je daar mee tevreden zijn.
Pagina: 1