- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1434
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. 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -