![]() |
Как в Win2000 можно программно выключить компьютер ? В Win98 для этого можно использовать команду rundll32 user.exe,ExitWindows.Под WIN2000 она не работает.
|
http://www.chem.univ.kiev.ua/~adsh/win2k/.
...отправить машину в спячку можно следующей командой: %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Если создать *.cmd файл подобного содержания, то с его помощью можно будет вводить машину в hibernate из шедулера, в заданное время. Для того что бы выключить компьютер, можно воспользоваться следующим методом. Создаем в любом текстовом редакторе файл poweroff.vbs следующего содержания: dim OpSysSet, obj Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & _ "(Shutdown)}//./root/cimv2").ExecQuery _ ("SELECT * FROM Win32_OperatingSystem" &_ " WHERE Primary=true") For Each obj In OpSysSet obj.Win32Shutdown(8) Next В дальнейшем можно стартовать этот скрипт из командной строки или включить вызов в командный файл. Уже готовый скрипт при желании можно скачать здесь: http://www.chem.univ.kiev.ua/~adsh/w...t/poweroff.zip |
pss
загляни на http://www.freeware.ru там есть много планировщиков, что хочешь сделают, хоть винду деинсталируют |
Функция ExitWindowEx.
а команда действительно работать не будет. Где ты видел в 2000-й user.exe? Там есть user32.dll. А вообще "программно" - это случаем не к программированию относится? |
Если хочеш, есть такая прога в каталоге Виндовса - shutdown.
|
Нужно Сначала установить необходимые привилегии
\ SetPrivilegies(...) \ , а потом делай что хочеш |
Прошу прощения, но есть скрипт подобного содержания:
----------------------------------------------------------- dim OpSysSet, obj strComputer = "192.168.0.250" Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & _ "(Shutdown)}\\" & strComputer & "\root\cimv2").ExecQuery _ ("SELECT * FROM Win32_OperatingSystem" &_ " WHERE Primary=true") For Each obj In OpSysSet obj.Win32Shutdown(8) Next --------------------------------------------------------------- Выключает удаленную машину хорошо, но если машина залочена, то толку никакого. Вопросы такие: 1. Что означает цифра в предпоследней строке скрипта, вернее нужно описание значений цифр от 0 до возможного (8 - выключение, это понятно)? 2. Как посредством подобного скрипта вырубить заблокированную машину? 3. Возможно ли что-то подобное написать на JavaScript. Где взять пример. Варианты типа программ не подходят, нужно именно скриптами. Всем заранее спасибо! |
К сожалению у меня этот способ не сработал. (poweroff.vbs)
Выдает ошибку:" Не удается найти исполняющее ядро для VBScript <имя скрипта>" |
Native API
Сначала получаем привилегию SeShutdownPrivilege функцией AdjustTokenPrivileges.
Затем на выбор: "Нормально" выкл. комп - ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0); Метод покруче - NtShutdownSystem(0); (Функция находится в ntdll.dll; вырубает комп без вопросов и примерно за 0,2 сек) Можно еще отправить комп в спящий режим - NtInitiatePowerAction(3,2,3,0); (Но это уже не в ту степь; функция находится тоже в ntdll.dll) Учите Native API, Товарищи, это офигенно мощная штука! От модератора monkkey Уважаемый! Не надо гнуть пальцы, пожалуйста, и выражаться, поднимая тему полуторагодовалой давности. |
Время: 19:20. |
Время: 19:20.
© OSzone.net 2001-2025