Post by mcl » 02 Nov 2023, 17:22
superlefka wrote: ↑
Вобщем есть ноут на ХР ,и очень старые программы для гравировки,и если пропадает сеть,нужно чтобы ноут это понимал,и нажималась определенная комбинация,например:
...
*сеть имеется ввиду 220
*220 — имеется в виду питание?
Что до электричества, то у меня не ноут и давно, увы, не XP, но предположу, что системная функция
GetSystemPowerStatus даёт нужную нам информацию. Попробуйте этот скрипт: он должен долго и уныло гудеть, а при выключении компьютера из розетки — загудеть встревоженно и звонко (проверить, увы, не могу — мой десктоп загудеть не успеет).
Code: Select all
Loop {
; Узнаём, питаемся ли мы от розетки
VarSetCapacity(vPowerStatus, 12, 0)
DllCall("GetSystemPowerStatus", "Ptr", &vPowerStatus)
vACLine := NumGet(vPowerStatus, 0, "UChar")
If (vACLine == 0) {
; Электричество кончилось
SoundBeep, 600, 300
SoundBeep, 600, 300
SoundBeep, 600, 300
Break
} Else {
SoundBeep, 300, 500
Sleep 3000
}
}
Return
Если скрипт сработает, можете доработать его под ваши нужды, заменив
SoundBeep на
Send и
Sleep (или подождав более доброго самаритянина — я учить вас жать кнопки не стану, этим пол-форума забито).
[quote=superlefka post_id=545584 user_id=167124]
Вобщем есть ноут на ХР ,и очень старые программы для гравировки,и если пропадает сеть,нужно чтобы ноут это понимал,и нажималась определенная комбинация,например:
...
*сеть имеется ввиду 220 😁
[/quote]
*220 — имеется в виду питание?
Что до электричества, то у меня не ноут и давно, увы, не XP, но предположу, что системная функция [url=https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getsystempowerstatus]GetSystemPowerStatus[/url] даёт нужную нам информацию. Попробуйте этот скрипт: он должен долго и уныло гудеть, а при выключении компьютера из розетки — загудеть встревоженно и звонко (проверить, увы, не могу — мой десктоп загудеть не успеет).
[Codebox=autohotkey file=PowerStatusTest.ahk]
Loop {
; Узнаём, питаемся ли мы от розетки
VarSetCapacity(vPowerStatus, 12, 0)
DllCall("GetSystemPowerStatus", "Ptr", &vPowerStatus)
vACLine := NumGet(vPowerStatus, 0, "UChar")
If (vACLine == 0) {
; Электричество кончилось
SoundBeep, 600, 300
SoundBeep, 600, 300
SoundBeep, 600, 300
Break
} Else {
SoundBeep, 300, 500
Sleep 3000
}
}
Return
[/Codebox]
Если скрипт сработает, можете доработать его под ваши нужды, заменив [docs]SoundBeep[/docs] на [docs]Send[/docs] и [docs]Sleep[/docs] (или подождав более доброго самаритянина — я учить вас жать кнопки не стану, этим пол-форума забито).