|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Эмуляции нажатия клавиш в неактивном окне |
|
|
[решено] Эмуляции нажатия клавиш в неактивном окне
|
Новый участник Сообщения: 15 |
Профиль | Отправить PM | Цитировать Доброго времени суток.
Необходим скрипт который будет удерживать/нажимать (в неактивном окне) клавишу. Имя процесса не меняется, изменяется лишь "Handle" заметил через AutoIt Window Info Буду рад любой помощи |
|
Отправлено: 18:37, 04-01-2011 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Примерно так:
ControlSend("Title", "", "", "{ShiftDown}") |
------- Отправлено: 18:58, 04-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать А что если нужных процесса 2? Как не ошибиться в выборе?
|
Последний раз редактировалось ZARG-X, 05-01-2011 в 01:04. Отправлено: 23:25, 04-01-2011 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ZARG-X:
$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 |
|
------- Отправлено: 23:39, 04-01-2011 | #4 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Ковыряя код всё выглядит красиво, но вот не работает ничего. (даже кнопки рабочими сделать не могу)
Creat0R, поможешь еще раз? Собственно вот что нужно.. Думаю с окнами понятно, разве что хотелось бы указывание какое окно выбрано (Handle). А вот под "Старт" и "Стоп" залипание клавиши. Реально такое оживить? |
|
Отправлено: 02:25, 05-01-2011 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ZARG-X:
Цитата ZARG-X:
|
||
------- Отправлено: 02:35, 05-01-2011 | #6 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Хотя это уже не важно, можно обойтись. Цитата 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 Это самое сложное пожалуй. С моими кривыми руками тут самому ничего не сделать... |
||
Отправлено: 03:17, 05-01-2011 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ZARG-X:
Цитата ZARG-X:
Цитата ZARG-X:
|
|||
------- Отправлено: 10:54, 05-01-2011 | #8 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Легче будет при каждом запуске скрипта указывать окно вручную, разумеется при помощи скрипта.
Цитата Creat0R:
|
|
Отправлено: 13:26, 05-01-2011 | #9 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Неужели это не осуществить? Очень жаль...
|
Отправлено: 23:48, 05-01-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Восстановление данных после нажатия клавиш Shift+Delete | berk2030 | Накопители (SSD, HDD, USB Flash) | 7 | 24-12-2010 22:35 | |
[решено] эмуляция нажатия клавиш с помощью Autoit | lekivanv | AutoIt | 5 | 18-11-2010 02:35 | |
Вирус имитирующий нажатия клавиш и другие проблемы с компом | skit99 | Лечение систем от вредоносных программ | 12 | 01-02-2010 09:34 | |
[решено] Эмуляция ввода с клавиатуры или клик мышки на кнопку в неактивном окне | Иск | AutoIt | 5 | 28-02-2009 12:30 | |
Двойные нажатия клавиш | ivank | Железо в Linux | 8 | 09-06-2003 09:24 |
|