Yegorich_555
Новичок
- Сообщения
- 20
- Репутация
- 0
Всем привет. Есть задача: одним щелчком мыши открыть свойства драйвера конкретного устройства.
Для этого я написал следующий скрипт:
Смысл прост. Открываем диспетчер устройств, переключаем раскладку на русскую и посылаем TAB и 3 символа "Мон" - выделенная строка должна сразу попасть на "Монитор", к примеру. Все работает, за исключением одного: если открывать диспетчер устройств через скрипт Autoit3 то раскладка не переключается, хотя кнопка TAB посылается (т.е. окно активно). Если же диспетчер устройств открыть вручную или через bat-ник, то все происходит должным образом!!!
Примечание: диспетчер устройств пробовал открыть 3-мя командами:
1) ShellExecute("devmgmt.msc")
2) Run ("mmc.exe devmgmt.msc")
3) Run ("my.bat")
Результат тот же - не переключается раскладка! Как мне разрулить эту ситуацию через скрипт?
Для этого я написал следующий скрипт:
Код:
$win_handle = WinGetHandle ("Диспетчер устройств")
ShellExecute("devmgmt.msc")
WinWait($win_handle)
WinActivate($win_handle, "")
ControlSend($win_handle, "", "", "{TAB}")
;~ переключение в русскую раскладку
_SetKeyboardLayout("00000419", $win_handle)
ControlSend($win_handle, "", "", "Мон")
Func _SetKeyboardLayout($sLayoutID, $hWnd)
Local $WM_INPUTLANGCHANGEREQUEST = 0x50
Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 0)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, _
"int", $WM_INPUTLANGCHANGEREQUEST, _
"int", 1, _
"int", $ret[0])
EndFunc
Exit
Смысл прост. Открываем диспетчер устройств, переключаем раскладку на русскую и посылаем TAB и 3 символа "Мон" - выделенная строка должна сразу попасть на "Монитор", к примеру. Все работает, за исключением одного: если открывать диспетчер устройств через скрипт Autoit3 то раскладка не переключается, хотя кнопка TAB посылается (т.е. окно активно). Если же диспетчер устройств открыть вручную или через bat-ник, то все происходит должным образом!!!
Примечание: диспетчер устройств пробовал открыть 3-мя командами:
1) ShellExecute("devmgmt.msc")
2) Run ("mmc.exe devmgmt.msc")
3) Run ("my.bat")
Результат тот же - не переключается раскладка! Как мне разрулить эту ситуацию через скрипт?