Googler
Сообщения: 3665
Благодарности: 1563
|
Профиль
|
Отправить PM
| Цитировать
не так, Shift+Down это будет: Send("+{Down}")
Цитата HORRIBLE:
есть команда ControlClick("Adobe Acrobat 8 Professional", "", "[CLASS:Button; TEXT:Accept; INSTANCE:2]")
[...] что это такое »
|
то же самое что ControlClick("Adobe Acrobat 8 Professional", "", "Button2")
Creat0R
вроде разобрался как управлять кнопками питания, вот UDF и пример:
Код: 
Global Const $PowerActionNone = 0
Global Const $PowerActionReserved = 1
Global Const $PowerActionSleep = 2
Global Const $PowerActionHibernate = 3
Global Const $PowerActionShutdown = 4
Global Const $PowerActionShutdownReset = 5
Global Const $PowerActionShutdownOff = 6
Global Const $PowerActionWarmEject = 7
Dim $aOFF[3]=[0,0,0]
$aBAK = PowerKeysCallState($aOFF) ; читаем/записываем состояние клавиш
MsgBox(0,'','Клавиши питания заблокированы!')
PowerKeysCallState($aBAK) ; восстанавливаем состояние клавиш
MsgBox(0,'','Состояние клавиш восстановлено!')
; $aKeys[0] - Power Key Action
; $aKeys[1] - Sleep Key Action
; $aKeys[2] - NoteBook Close Action
Func PowerKeysCallState($aKeys = 0)
Local Const $SysPwrPolLen = 232 ; size of SYSTEM_POWER_POLICY structure
Local $buf = DllStructCreate("byte["&$SysPwrPolLen&"]")
Local $tmp = DllStructCreate("long;int;long[2];int;long[2];int;long[2]", DllStructGetPtr($buf))
; Чтение текущей системной политики питания
Local $ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 0, _
"ptr", 0, "int", 0, "ptr", DllStructGetPtr($buf), "int", DllStructGetSize($buf))
If Not(IsArray($ret)) Then SetError(1, @error) ; ошибка DLL
If $ret[0] Then Return SetError(2, $ret[0]) ; ошибка чтения политики
; Сохранение текущей конфигурации клавиш в выходном массиве
Local $i, $res[3]
For $i=1 To 3
$res[$i-1] = DllStructGetData($tmp,$i*2)
Next
; Сохранение требуемой конфигурации в структуре данных политики
If UBound($aKeys,1)=3 Then ; проверка типа данных
For $i=1 To 3
If BitShift($aKeys[$i-1],3)=0 Then ; проверка допустимого значения
DllStructSetData($tmp, $i*2, $aKeys[$i-1])
If $aKeys[$i-1]=0 Then DllStructSetData($tmp,$i*2+1,BitOR (DllStructGetData($tmp,$i*2+1,2),0x80000000),2)
If $aKeys[$i-1]>0 Then DllStructSetData($tmp,$i*2+1,BitAND(DllStructGetData($tmp,$i*2+1,2),0x7FFFFFFF),2)
EndIf
Next
; Применение новой политики
$ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 0, _
"ptr", DllStructGetPtr($buf), "int", $SysPwrPolLen, "ptr", 0, "int", 0)
If Not(IsArray($ret)) Then SetError(1, @error) ; ошибка DLL
If $ret[0] Then Return SetError(3, $ret[0]) ; ошибка записи политики
EndIf
Return $res
EndFunc
|