Форум: "WinAPI";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Внизкоманда в WinAPI Найти похожие ветки
← →
DimaDukat (2006-05-02 23:41) [0]Подскажите пожалуйста, как программно выключить компьютер?
← →
Джо © (2006-05-02 23:42) [1]ExitWindowsEx
← →
Lamer@fools.ua © (2006-05-03 00:08) [2]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988621105&n=15
← →
VirEx © (2006-05-03 20:56) [3]пуск -> выполнить -> cmd -> shutdown /?
rundll32.exe powrprof.dll,SetSuspendState //переход Windows в спящее состояние
shutdown -r -c "WinConsul перезагружает Windows, для отмены - stopRestart"
shutdown -r -t 0 //быстрая перезагрузка Windows
shutdown -a //отмена перезагрузки/завершения работы Windows
shutdown -s -c "WinConsul завершает работу Windows, для отмены - stopRestart"
← →
Handle (2006-05-03 22:12) [4]
procedure ExitWinNT(AShutdown: Boolean);
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);
end;
end;
procedure NTWait;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
SetSystemPowerState(true, true);
end;
end;
procedure NTReboot;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_REBOOT or ewx_force,0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
NTWait;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
NTReboot;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ExitWinNT(True);
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c