![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выключить/перезагрузит/ждущий режим комп? [D7, Win2k, WinXP]
Dr.Pauk © (2004-05-31 23:45:00)я тут впервые.. так что извиняйте, если что не так ;)
вопрос: обьясните какой функцией реализуется выкл,перезагруз. и переход в ждущий режим компьютера? и какие приэтом модули подключаются? И ваще КАК это делается?
ответ буду ждать с нетерпением.... так как на носу курсовик...
а это фишка в проге не работает:(
заранее благодарен!
grom (2004-06-01 08:50:00) [1]пример для ХР
procedure TForm1.Button1Click(Sender: TObject);
var hToken:THandle;
Luid: TLargeInteger;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES,
hToken)
then begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', Luid);
tkp.Privileges[0].Luid := Luid;
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil,
ReturnLength)
then if not ExitWindowsEx(EWX_LOGOFF,0)
then ShowMessage('Íå óäàëîñü ñìåíèòü ïîëüçîâàòåëÿ');
end;
end;
//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
procedure TForm1.Button2Click(Sender: TObject);
var hToken:THandle;
Luid: TLargeInteger;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES,
hToken)
then begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', Luid);
tkp.Privileges[0].Luid := Luid;
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil,
ReturnLength)
then if not ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0)
then ShowMessage('Íå óäàëîñü âûêëþ÷èòü êîìïüþòåð');
end;
end;
//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
procedure TForm1.Button3Click(Sender: TObject);
var hToken:THandle;
Luid: TLargeInteger;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES,
hToken)
then begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', Luid);
tkp.Privileges[0].Luid := Luid;
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil,
ReturnLength)
then if not ExitWindowsEx(EWX_REBOOT,0)
then ShowMessage('Íå óäàëîñü ïåðåçàãðóçèòü ñèñòåìó');
end;
end;
Cobalt (2004-05-31 23:51:00) [2]выкл и перезагруз - ExitWindows (или ExitWindowsEx)
переход в ждущий режим - вроде(типа ;-) SetSystemPowerState