![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перезагрузка, выключение, выход из системы. [D7, WinXP]
Earth © (2005-06-10 19:24:00)Я думаю из названия всё понятно, если у кого есть коды - покажите, а то все те что я видел, только делают Log off.
Vit@ly (2005-06-10 19:49:00) [1]Попробуй
Function SetPrivilege(aPrivilegeName: String; aEnabled: 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(aPrivilegeName),TP.Privileges[0].LUID ){)} then
Begin
IF aEnabled 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;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetPrivilege('SeShutdownPrivilege',True);
ExitWindowsEx(EWX_LOGOFF,0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SetPrivilege('SeShutdownPrivilege',True);
ExitWindowsEx(EWX_POWEROFF,0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SetPrivilege('SeShutdownPrivilege',True);
ExitWindowsEx(EWX_REBOOT,0);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
SetPrivilege('SeShutdownPrivilege',True);
ExitWindowsEx(EWX_SHUTDOWN,0);
end;
Надеюсь из наименования параметров ясно, чт делает каждый из ButtonClick
Успехов