Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизКак перевести компьютер в ждущий режим? Найти похожие ветки
← →
Wolfram © (2005-09-30 22:09) [0]Как перевести компьютер в ждущий и спящий режимы под WinXP? Функция systemparametersinfo здесь не работает.
← →
Wolfram © (2005-10-01 07:44) [1]Народ, неужели никто не знает, как это сделать???
← →
Antonn © (2005-10-01 08:50) [2]я так:
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;
← →
Antonn © (2005-10-01 08:50) [3]аге, спащий забыл:
procedure NTSleep;
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; // one privelege to set
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
SetSystemPowerState(true, true);
end;
end;
← →
Pass[word] © (2005-10-01 08:52) [4]Я знаю как. Молотком!
← →
Antonn © (2005-10-01 15:10) [5]Pass[word] © (01.10.05 8:52) [4]
так только выключить можно.
← →
Wolfram © (2005-10-01 21:12) [6]Чё-то я не понял - функции NTWait и NTSleep абсолютно одинаковые и переводят комп в ждущий режим. А как со спящим?
← →
Antonn © (2005-10-02 05:27) [7]Wolfram © (01.10.05 21:12) [6]
ой. точно одинаковые...
var
_SetSuspendState: function (Hibernate, ForceCritical, DisableWakeEvent: BOOL): BOOL
stdcall = nil;
function LinkAPI(const module, functionname: string): Pointer; forward;
function SetSuspendState(Hibernate, ForceCritical, DisableWakeEvent: Boolean): Boolean;
begin
if not Assigned(_SetSuspendState) then
@_SetSuspendState := LinkAPI("POWRPROF.dll", "SetSuspendState");
if Assigned(_SetSuspendState) then
Result := _SetSuspendState(Hibernate, ForceCritical,
DisableWakeEvent)
else
Result := False;
end;
function LinkAPI(const module, functionname: string): Pointer;
var hLib: HMODULE;
begin
hLib := GetModulehandle(PChar(module));
if hLib = 0 then
hLib := LoadLibrary(PChar(module));
if hLib <> 0 then
Result := getProcAddress(hLib, PChar(functionname))
else
Result := nil;
end;
юзание - SetSuspendState(True, False, False);
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c