Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Stäng ned en dator via nätverket
|
Kategori: Internet
Inlagt: 2005-04-04
Läst: 1504
Inlagt av: Staffan Berg
|
Beskrivning |
Med hjälp av detta sofistikerade exempel kan du stänga ned en datorn via nätverket.
|
Kod |
unit shutdown; interface uses Windows, StdCtrls; procedure shut(system, nachricht: string ; force, reboot: Boolean; countdown: Integer); procedure abortshut(system: string ); implementation const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; var hdlg: DWORD = 0; procedure shut(system, nachricht: string ; force, reboot: Boolean; countdown: Integer); var otoken, hToken: THandle; tp: TTokenPrivileges; h: DWORD; begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken); otoken := htoken; LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, tp.Privileges[0].luid); tp.privilegecount := 1; tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED; h := 0; AdjustTokenPrivileges(hToken, False, tp, 0, PTokenPrivileges(nil)^, h); InitiateSystemShutdown(PChar(system), PChar(nachricht), countdown, force, reboot); tp.privilegecount := 1; tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED; h := 0; AdjustTokenPrivileges(oToken, False, tp, 0, PTokenPrivileges(nil)^, h); CloseHandle(hToken); end; procedure abortshut(system: string ); var hToken: THandle; tp: TTokenPrivileges; h: DWORD; begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken); LookupPrivilegeValue(PChar(system), SE_SHUTDOWN_NAME, tp.Privileges[0].luid); tp.privilegecount := 1; tp.privileges[0].Attributes := SE_PRIVILEGE_ENABLED; h := 0; AdjustTokenPrivileges(hToken, False, tp, 0, PTokenPrivileges(nil)^, h); CloseHandle(hToken); abortSystemShutdown(PChar(system)); end; end.
|
|
|