Jika ada yang bertanya Log off, shut down, restart ato reboot Pake delphi?? jawabnya bisa ko.
klo gak percaya, kamu tanya aja tuh pada para master delphi, klo masih gak percaya juga, coba aja kode berikut..
kodenya sebenernya juga dapet di Web. Nie linknya http://www.chami.com cuman ada editan dikit biar bisa jalan n ga error.
Adapun Script Codenya Sbb,
- Pertama tulis ato Copy-Paste 2 fungsi dibawah :
// fungsi set privilege... function SetPrivilege(sPrivilegeName : string;bEnabled : boolean ): boolean; var
TPPrev, TP : TTokenPrivileges;
Token : THandle;
dwRetLen : DWord; begin
Result := False;
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or
TP.PrivilegeCount := 1; if( LookupPrivilegeValue(Nil,PChar( sPrivilegeName ),
TP.Privileges[ 0 ].LUID ) ) then begin if( bEnabled )then begin
TP.Privileges[ 0 ].Attributes :=SE_PRIVILEGE_ENABLED; end else begin
TP.Privileges[ 0 ].Attributes :=0; end;
dwRetLen := 0;
Result :=
AdjustTokenPrivileges(Token,False,TP,SizeOf( TPPrev ),TPPrev,dwRetLen ); end;
CloseHandle( Token ); end;
// fungsi windows exit... function WinExit( iFlags : integer ) : boolean; begin
Result := True; if( SetPrivilege( 'SeShutdownPrivilege', True ) ) then begin if( not ExitWindowsEx( iFlags, 0 ) ) then begin // handle errors...
Result := False; end;
SetPrivilege( 'SeShutdownPrivilege', False ) end else begin // handle errors...
Result := False; end;
end; TOKEN_QUERY, Token );
|
Trus ke dua Fungsi diatas bisa kamu bangkitin lewat komponen lain, sebagai contoh lewat tombol(TButton),
- Buat restart / reboot, Contoh pake code tombol saat di klik ato TButton on click sbb:
// restart/reboot Windows Saat Button1 di klik... procedure TForm1.Button1Click(Sender: TObject); begin
SetPrivilege( 'SeShutdownPrivilege', True );
ExitWindowsEx(EWX_REBOOT or EWX_FORCE,0); end;
|
- Buat Turn Off / shut down, Contoh pake code tombol saat di klik ato TButton on click sbb:
// Turn Off / shut down Windows Saat Button2 di klik... procedure TForm1.Button2Click(Sender: TObject); begin
SetPrivilege( 'SeShutdownPrivilege', True );
ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE,0); end;
|
- Buat Log Off, Contoh pake code tombol saat di klik ato TButton on click sbb:
NB : Kode Logoff dibawah tidak membutuhkan 2 fungsi code yang ditulis diatas, so tanpa 2 fungsi yang tadi
udah ditulis juga bisa langsung jalan.
// Log Off Windows Saat Button3 di klik... procedure TForm1.Button3Click(Sender: TObject); begin
application.Terminate ;
ExitWindows(0,EWX_FORCE); end;
|
- Kalo kita lihat pada code diatas code untuk Restart/Reboot dan code untuk
Turn Off/Shut down menggunakan fungsi SetPrivilege dahulu sebelum akhirnya menggunakan
fungsi Windows ExitWindowsEx.
- Sedangkan untuk Logoff/Loging Off cukup menggunakan fungsi windows Exitwindows, karena memang
fungsi ini digunakan untuk me-log off current User.
Kalo kita lihat pada menu Help delphi - Windows SDK, terdapat 2 fungsi exit windows yaitu : Exitwindows dan ExitwindowsEX.
Fungsi Exitwindows merupakan salah satu fungsi
Windows(Windows Function), yang gunanya buat me-LogOff pengguna(User)
komputer. fungsi ini bisa langsung dipanggil dan berfungsi sebagimana
fungsinya.
Sedangkan Fungsi ExitwindowsEx juga merupakan salah satu
fungsi Windows(Windows Function), yang gunanya untuk merestart atau
Shutting Down komputer, namun ternyata fungsi ini jika langsung
digunakan hasilnya seperti kita memanggil fungsi ExitWindows, yang artinya komputer cuma logging off saja.
Penulis ga tau pastinya kenapa (yang tau kasi komentar ya...), namun fungsi ExitwindowsEx bisa berfungsi jika sudah kita tulis sendiri fungsi SetPrivilege seperti diatas...
Klik disini buat Download Contoh Project diatas(artikel2.zip/size: 214kb)
- artikel2.zip Berisi : "Exit.cfg", "Exit.dof", "Exit.dpr", "Exit.exe", "Exit.res", "readme.txt", "unit1.dcu", "unit1.ddp", "unit1.dfm", "unit1.pas".
ArtrashBoy Say : "Be Uses Not Be VIRUS....."
NB : Coretan Di atas telah di publikasikan sebelumnya oleh http://piere.dikti.net/artikel2.php
Source: http://piere.dikti.net/artikel2.php |