Как отправить компьютер спать ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Как отправить компьютер спать ?

Сообщение Eduard » 27.12.2003 (Сб) 18:41

Как можно грамотно программно отправить компьютер спать (Suspend, Sleep) ?

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 27.12.2003 (Сб) 19:36

Функция проверяет поддерживает ли ПК suspend:
Код: Выделить всё
Declare Function IsPwrSuspendAllowed Lib "Powrprof.dll" () As Long

Эта функция и делает "черное дело":
Код: Выделить всё
Declare Function SetSuspendState Lib "Powrprof" (ByVal Hibernate As Long, ByVal ForceCritical As Long, ByVal DisableWakeEvent As Long) As Long


Hibernate = True (Hibernation) | False (Suspend)
ForceCritical = True (быстро спать!) ;)
DisableWakeEvent = True (отмена событий "пробуждающих")
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 28.12.2003 (Вс) 18:32

Проверить поддержку проверил он, вернул 1, а вот спать не в какую не хочет уходить, может что добавить надо ?

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 28.12.2003 (Вс) 19:33

Все просто:

Код: Выделить всё
Private Declare Function SetSuspendState Lib "Powrprof" (ByVal Hibernate As Long, ByVal ForceCritical As Long, ByVal DisableWakeEvent As Long) As Long
Private Sub Form_Load()
    SetSuspendState 0, 0, 0
End Sub


Работает на Win98/2K/XP/2003.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 28.12.2003 (Вс) 19:34

На всякий случай поясню: 0 = False, 1 = True :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList  
cron