"Быстрое" выключение ПК - программно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
IljaO
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.07.2004 (Вс) 13:22

"Быстрое" выключение ПК - программно

Сообщение IljaO » 05.02.2005 (Сб) 17:01

Как известно, есть 2 способа выключить ПК: через Start -> Turn off или нажав кнопку Power. Причем выключение по кнопке происходит раза в 2-3 быстрее (вроде бы настройки винды не сохраняются в профайл). Так вот: как программно выключить ПК вторым способом (т.е. как по кнопке), если это возможно?
Заранее спасибо.

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.02.2005 (Сб) 18:55

А в общем какая разница с какой скоростью у Тебя комп вырубится или все же не нужно настройки сохранять?

попробуй так:
Код: Выделить всё
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery( "Select * from Win32_OperatingSystem")
For Each ObjOperatingSystem In colOperatingSystems
ObjOperatingSystem.ShutDown
Next

IljaO
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.07.2004 (Вс) 13:22

Сообщение IljaO » 05.02.2005 (Сб) 19:43

В принципе работает. Спасибо.
А настройки мне сохранять НЕ нужно.
Кстати: а что происходит при нажатии на Power? :?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 6:07

Перестаёт подаваться питание на мать.
Эмулируется ножницами или кусачками.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2005 (Вс) 10:14

Это на AT-корпусах так. На ATX он замыкает на ней пару выводов. Неплохо эмулируется отвёрткой ;-)
Изображение

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 06.02.2005 (Вс) 16:37

Кстати в ATX комп можно отключить в течении 8 секунд.
Прижимаем кнопарь... :twisted: и через 8 секунд наш корпус становится AT :)
Типс вроде старый как мир, а мой дружбан не знал :)
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 16:57

А можно так:
Код: Выделить всё
'In general section
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
    msg = MsgBox("This program is going to reboot your computer. Press OK to continue or Cancel to stop.", vbCritical + vbOKCancel + 256, App.Title)
    If msg = vbCancel Then End
    'reboot the computer
    ret& = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)
End Sub

Можно поэкспериментировать с константами-прикольно :wink:
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 17:02

А где включение привилегии SeShutdownPrivilege? Без этого доступ не дадут :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 17:33

А где включение привилегии SeShutdownPrivilege? Без этого доступ не дадут

Сделал exe-шку-работает :shock:
Может из-за win98 :? .
На ХР- не хочет
:(
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 17:38

Ага, на 98 нет привилегий :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

User2004
Обычный пользователь
Обычный пользователь
 
Сообщения: 58
Зарегистрирован: 10.06.2004 (Чт) 17:39
Откуда: London

Сообщение User2004 » 06.02.2005 (Вс) 17:51

:shock: Спасибо!Буду знать. :o
There are 10 types of people in the world:
Those who understand binary and Those who do not.((c)some one)

IljaO
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.07.2004 (Вс) 13:22

Сообщение IljaO » 06.02.2005 (Вс) 17:52

Не, ExitWindowsEx, конечно, работает правильно и везде (как - MSDN Q168796), но через него винда выгружается очень долго и нудно, что не всегда хорошо %). Задача - как можно быстрее вырубить 60 компов в комнате ;) В принципе код, предложенный MLeha, работает, но я никак не могу разобраться с объявлениями... Option Explicit свое дело знает... :) А необъявленные объекты в будущем могут дать сбои. Если можно, объясните. 8)

IljaO
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.07.2004 (Вс) 13:22

Сообщение IljaO » 06.02.2005 (Вс) 17:54

Кстати, кусачки и отвертка - очень хорошая идея. В каждый корпус - по роботу, которые этими самыми инструментами и будут орудовать :D
Просто и надежно :wink:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 17:56

dim objWMIService as object, colOperatingSystems as object, ObjOperatingSystem as object
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 17:57

IljaO писал(а):Кстати, кусачки и отвертка - очень хорошая идея. В каждый корпус - по роботу, которые этими самыми инструментами и будут орудовать :D
Просто и надежно :wink:

Ага, и мануал на 3000 страниц по управлению роботами :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.02.2005 (Вс) 20:24

KDima писал(а):Кстати в ATX комп можно отключить в течении 8 секунд.

Разве не 4 секунды?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2005 (Вс) 20:48

alibek писал(а):
KDima писал(а):Кстати в ATX комп можно отключить в течении 8 секунд.

Разве не 4 секунды?
У моего компа - четыре. Думаю, это зависит от БП/матери/биоса и т.п.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2005 (Вс) 20:55

IljaO писал(а):Кстати, кусачки и отвертка - очень хорошая идея. В каждый корпус - по роботу, которые этими самыми инструментами и будут орудовать :D
Просто и надежно :wink:

Угу, даже анек такой был: "самая главная угроза для компа - это программист с отвёрткой". Типа, даже страшнее чем чайник с админскими правами.
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 09.02.2005 (Ср) 1:19

А моей Win98 без раздницы она как на Power отрубается секунды за 3-4 так и через ПУСК,
А вот мой Win2k через Power - за 15-20 сек, а через ПУСК - секунт так 40!!!!!!!!!!
Изображение

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 09.02.2005 (Ср) 1:22

и зачем под 98 так долго на Power жать??
Изображение

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 09.02.2005 (Ср) 17:24

tyomitch писал(а):
alibek писал(а):
KDima писал(а):Кстати в ATX комп можно отключить в течении 8 секунд.

Разве не 4 секунды?
У моего компа - четыре. Думаю, это зависит от БП/матери/биоса и т.п.


Я слышал это настраивается но не у всех....
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Хех ...

Сообщение xenomorph » 09.02.2005 (Ср) 17:39

Ножницы,
отвёртки,
роботы 8)))) ...
- Главное хвост!
--
А я вот предпочитаю так:
Получаем SE?Debug Priveleges ...
Delaem OpenProcess Winlogon.exe
и делее немного извращаемся с CreateRemoteThread и ExitProcess ---
Комп лечиться в течении милисекунды 8).

Комбинация фатальна 8ъ!
--
Код не дам - куды дел не помню - помню что работало 8))))!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 137

    TopList