[решено] Эмуляции нажатия клавиш в неактивном окне
-
ZARG-X
[решено] Эмуляции нажатия клавиш в неактивном окне
Доброго времени суток.
Необходим скрипт который будет удерживать/нажимать (в неактивном окне) клавишу. Имя процесса не меняется, изменяется лишь "Handle" заметил через AutoIt Window Info
Буду рад любой помощи
Необходим скрипт который будет удерживать/нажимать (в неактивном окне) клавишу. Имя процесса не меняется, изменяется лишь "Handle" заметил через AutoIt Window Info
Буду рад любой помощи
-
ZARG-X
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
kaster, Благодарю
Просто я еще даже не новичек в этом деле
Просто я еще даже не новичек в этом деле
-
ZARG-X
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
А что если нужных процесса 2? Как не ошибиться в выборе?
-
Creat0R
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Цитата ZARG-X:
А что если нужных процесса 2?
Тогда нужна функция получения Handle окна по процессу:
Код:
А что если нужных процесса 2?
[решено] Эмуляции нажатия клавиш в неактивном окне
Тогда нужна функция получения Handle окна по процессу:
Код:
Код: Выделить всё
$hWindow = _ProcessGetWindow("Proc.exe", 1)
ControlSend($hWindow, "", "Scintilla1", "{ShiftDown}")
Func _ProcessGetWindow($iPID, $iRet = -1)
Local $aWinList = WinList(), $aRet[2]
If IsString($iPID) Then
$iPID = ProcessExists($iPID)
EndIf
For $i = 1 To UBound($aWinList)-1
If BitAND(WinGetState($aWinList[$i][1]), 2) And WinGetProcess($aWinList[$i][1]) = $iPID Then
$aRet[0] = $aWinList[$i][0] ;Title
$aRet[1] = $aWinList[$i][1] ;WinHandle
If $iRet = 0 Then
Return $aRet[0]
EndIf
If $iRet = 1 Then
Return $aRet[1]
EndIf
Return $aRet
EndIf
Next
Return SetError(1, 0, $aRet)
EndFunc-
Creat0R
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Ковыряя код всё выглядит красиво, но вот не работает ничего. (даже кнопки рабочими сделать не могу)
Creat0R, поможешь еще раз?
Собственно вот что нужно..

Думаю с окнами понятно, разве что хотелось бы указывание какое окно выбрано (Handle). А вот под "Старт" и "Стоп" залипание клавиши.
Реально такое оживить?
Creat0R, поможешь еще раз?
Собственно вот что нужно..

Думаю с окнами понятно, разве что хотелось бы указывание какое окно выбрано (Handle). А вот под "Старт" и "Стоп" залипание клавиши.
Реально такое оживить?
-
ZARG-X
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Цитата ZARG-X:
Думаю с окнами понятно
Нет. Я вообще не понял что нужо делать.
Цитата ZARG-X:
хотелось бы указывание какое окно выбрано (Handle)
Handle имеет свойство меняться (после перезапуска приложения), это уникальный идентификатор, на него полагаться нельзя (в смысле на тот что заранее “подсмотрен” в AutoIt Window Info).
Думаю с окнами понятно
[решено] Эмуляции нажатия клавиш в неактивном окне
Нет. Я вообще не понял что нужо делать.
Цитата ZARG-X:
хотелось бы указывание какое окно выбрано (Handle)
[решено] Эмуляции нажатия клавиш в неактивном окне
Handle имеет свойство меняться (после перезапуска приложения), это уникальный идентификатор, на него полагаться нельзя (в смысле на тот что заранее “подсмотрен” в AutoIt Window Info).
-
Creat0R
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Цитата Creat0R:
Handle имеет свойство меняться (после перезапуска приложения)
Но ведь и программу можно перезапустить. В дальнешем придется снова выбирать окно (тоже после перезапуска).
Хотя это уже не важно, можно обойтись.
Цитата Creat0R:
Я вообще не понял что нужо делать.
Прошу прощения. Мой мозг уже спит без меня.
1. Залипание клавиши.
Нажимаешь кнопку "старт" залипание включено (допустим клавиша f1), нажимаем "стоп" залипание клавиши выключено. Скрипт кнопок тоже нужен.
Можно такое слепить?
2. Выбор окна.
Нажимаем кнопку "окно" и используя этот код
Код:
выбираем нужное нам окно в котором будет залипание клавиши.
Это самое сложное пожалуй.
С моими кривыми руками тут самому ничего не сделать...
Handle имеет свойство меняться (после перезапуска приложения)
[решено] Эмуляции нажатия клавиш в неактивном окне
Но ведь и программу можно перезапустить. В дальнешем придется снова выбирать окно (тоже после перезапуска).
Хотя это уже не важно, можно обойтись.
Цитата Creat0R:
Я вообще не понял что нужо делать.
[решено] Эмуляции нажатия клавиш в неактивном окне
Прошу прощения. Мой мозг уже спит без меня.
1. Залипание клавиши.
Нажимаешь кнопку "старт" залипание включено (допустим клавиша f1), нажимаем "стоп" залипание клавиши выключено. Скрипт кнопок тоже нужен.
Можно такое слепить?
2. Выбор окна.
Нажимаем кнопку "окно" и используя этот код
Код:
Код: Выделить всё
$hWindow = _ProcessGetWindow("Proc.exe", 1)
ControlSend($hWindow, "", "Scintilla1", "{ShiftDown}")
Func _ProcessGetWindow($iPID, $iRet = -1)
Local $aWinList = WinList(), $aRet[2]
If IsString($iPID) Then
$iPID = ProcessExists($iPID)
EndIf
For $i = 1 To UBound($aWinList)-1
If BitAND(WinGetState($aWinList[$i][1]), 2) And WinGetProcess($aWinList[$i][1]) = $iPID Then
$aRet[0] = $aWinList[$i][0] ;Title
$aRet[1] = $aWinList[$i][1] ;WinHandle
If $iRet = 0 Then
Return $aRet[0]
EndIf
If $iRet = 1 Then
Return $aRet[1]
EndIf
Return $aRet
EndIf
Next
Return SetError(1, 0, $aRet)
EndFuncвыбираем нужное нам окно в котором будет залипание клавиши.
Это самое сложное пожалуй.
С моими кривыми руками тут самому ничего не сделать...
-
ZARG-X
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Цитата ZARG-X:
Но ведь и программу можно перезапустить
Я не понял, а как на счёт...
Цитата ZARG-X:
Имя процесса не меняется
?
Цитата ZARG-X:
Нажимаешь кнопку "старт" залипание включено (допустим клавиша f1), нажимаем "стоп" залипание клавиши выключено
Залипание в целом, или для выбранного окна?
Но ведь и программу можно перезапустить
[решено] Эмуляции нажатия клавиш в неактивном окне
Я не понял, а как на счёт...
Цитата ZARG-X:
Имя процесса не меняется
[решено] Эмуляции нажатия клавиш в неактивном окне
?
Цитата ZARG-X:
Нажимаешь кнопку "старт" залипание включено (допустим клавиша f1), нажимаем "стоп" залипание клавиши выключено
[решено] Эмуляции нажатия клавиш в неактивном окне
Залипание в целом, или для выбранного окна?
-
Creat0R
Re: [решено] Эмуляции нажатия клавиш в неактивном окне
Легче будет при каждом запуске скрипта указывать окно вручную, разумеется при помощи скрипта.
Цитата Creat0R:
Залипание в целом, или для выбранного окна?
Для выбранного окна
Цитата Creat0R:
Залипание в целом, или для выбранного окна?
[решено] Эмуляции нажатия клавиш в неактивном окне
Для выбранного окна
-
ZARG-X