Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Отключение жестких дисков и ЦПУ   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
6-1082602212
FatBase
2004-04-22 06:50
2004.06.13
Base64 кодирование файлов


3-1085111806
Илья
2004-05-21 07:56
2004.06.13
работа с кпк


1-1085985664
ilnarab
2004-05-31 10:41
2004.06.13
Как распечатать содержимое Memo1?


1-1085778202
Talle
2004-05-29 01:03
2004.06.13
Динамический массив


1-1086188730
vvvaaa
2004-06-02 19:05
2004.06.13
Как создать папку