Arsip: Tiga solusihutdown Untuk Keluarga Win NT


by saysansay in Articles more 15 years ago 1634
Artikel asli ditulis Oleh : // ALI EBRAHIMI DORCHEH (ebr_ali@yahoo.com) .
tiga solusi shutdown untuk keluarga winNT


//------------- Solution 1-----------------

procedure TForm1.Button1Click(Sender: TObject);
begin
ExitWindowsEx(EWX_FORCE and EWX_SHUTDOWN,0);
//EWX_SHUTDOWN for shutdown
  //EWX_REBOOT for reboot
  //EWX_LOGOFF for logoff
end;
Syntax Highlighted with https://pascal-id.org/syntax



//------------- Solution 2-----------------
run %Windir%\\system32\\shutdown.exe
Example :
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec('shutdown.exe -s -f -t 0' , SW_HIDE);
end;
Syntax Highlighted with https://pascal-id.org/syntax



//------------- Solution 3-----------------

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function SetPrivilege1 (sPrivilegeName: string; bEnabled: 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 (sPrivilegeName), TP.Privileges[0].LUID) then
begin
if bEnabled 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;
CloseHandle (Token)
end;
function WinExit1 (iFlags: integer) : Boolean;
begin
result := true;
if SetPrivilege1 ('SeShutdownPrivilege', true) then
begin
if (not ExitWindowsEx (iFlags, 0)) then
begin
result := False
end;
SetPrivilege1 ('SeShutdownPrivilege', False)
end
else
begin
result := False
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// 0= Logoff
  // 1= Shutdown
  WinExit1(1);
end;
end.
Syntax Highlighted with https://pascal-id.org/syntax
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com