Форум: "WinAPI";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
ВнизОтключение жестких дисков и ЦПУ Найти похожие ветки
← →
NetWorK © (2004-05-04 12:55) [0]Добрый день, господа программисты!
Не занимался ли кто-нибудь разработкой программ подобоных по своей функциональности, системному "гасителю" Винды? У меня стоит подобная задача: нужно чтобы моя программа могла отключать монитор(тут проблем нет), жесткие диски(первая проблема) и ЦПУ. Что касается ЦПУ, то я и сам не совсем понимаю что это означает, но требуется STANDBY CPU. Вот такая задача, если кто может что-нибудь дельного подсказать, буду очень рад выслушать.
Заранее спасибо.
← →
Игорь Шевченко © (2004-05-04 14:35) [1]SetSystemPowerState ?
← →
NetworK © (2004-05-04 14:50) [2]
> Игорь Шевченко © (04.05.04 14:35) [1]
> SetSystemPowerState ?
В хелпе написано, что он только для 9х. Так что наверное не поможет.
← →
TUser © (2004-05-04 15:30) [3]В ХР, если из винды выйти, - но все можно выключить при современной маме. В 2000, вроде, тоже.
← →
Игорь Шевченко © (2004-05-04 15:39) [4]Client: Requires Windows XP, Windows 2000 Professional, Windows Me, Windows 98, or Windows 95.
Server: Requires Windows Server 2003 or Windows 2000 Server.
← →
NetworK © (2004-05-05 20:57) [5]
> Client: Requires Windows XP, Windows 2000 Professional,
> Windows Me, Windows 98, or Windows 95.
> Server: Requires Windows Server 2003 or Windows 2000 Server.
Да, согласен, не смог глянуть сразу в МСДН(спасибо провайдеру, наверное)
Но, господа, это ж не решение проблемы в общем. Т.е. с дисками это вроде должно работать, а как насчет ЦПУ. Вот именно здесь заложена та трабла, разобраться, с которой мне еще престоит. И если вам не очень трудно, чтобы помочь старому индейцу, то помогите, я в таком тупике, что уже не знаю к кому обращаться....хелп!
← →
DrPass © (2004-05-05 22:41) [6]Почему только с дисками? Ты можешь перевести всю систему в состояние suspend или вообще в спящий режим
← →
Zaratustra © (2004-05-06 19:35) [7]А не поможешь кодом? Я понимаю, что МСДН и хелп рулят, но в МСДН все на непонятном мне инглише и для непонятного мне Си. Был бы очень благодарен.
← →
Ajax © (2004-05-06 20:24) [8]Вот работающий под любой виндой код. На передачу параметра не смотрите - так было надо...
procedure ShutDown(param:PCHAR);
const
SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
var
hToken : THandle;
tkp : TTokenPrivileges;
ReturnLength : Cardinal;
begin
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then Exit;
if not LookupPrivilegeValue(nil, "SeShutdownPrivilege",tkp.Privileges[0].Luid) then Exit;
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength);
if Boolean( GetLastError() ) then Exit
else
if param="restart" then ExitWindowsEx(EWX_SHUTDOWN or EWX_REBOOT, 0 )
else
If param="suspend" then SetSystemPowerState(true,true)
else
If param="hibernate" then SetSystemPowerState(false,true)
else
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
← →
NetWorK © (2004-05-07 14:29) [9]Огромное спасибо за код. Это почти то что нужно. Но хотелось бы как-то пооддельности все вышеперечисленные ф-ции вызывать...т.е к примеру погасить монитор, но не вырубать диски и т.п.
Но все равно спасибо. Код действительно работает.
← →
NetworK © (2004-05-07 14:39) [10]И еще один вопрос насчет 9х. У меня 98 винда стоит под ВМВарей, там прога ничего не делает. Я так понимаю что это Варя виновата. Так ли это? Или дело в Винде...
← →
NetworK © (2004-05-11 15:11) [11]Ладно, нашел решение. Всем спасибо. Ветку можно считать закрытой
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c