1 (изменено: _ToBe_, 2011-08-10 05:07:01)

Тема: AHK: А может ли HotKey работать на заднем плане?

Столкнулся недавно с удобной и древней макро-прогой UOpilot. Так вот он может работать с окнами которые закрыты другими приложениями. т.е. с окнами на заднем плане
Пример: Запущена игра, там сделан макрос. Поверх игры запущен браузер. Но макрос работает непосредственно с окном игры, не мешая браузеру. Как буд-то на сквозь.

Может ли АвтоХотКей делать тоже самое?

2

Re: AHK: А может ли HotKey работать на заднем плане?

Может. Вероятно, Вас заинтересуют

Controlclick и ControlSend / ControlSendRaw

3

Re: AHK: А может ли HotKey работать на заднем плане?

Пожалуста расскажите подробней куда команды прописать?

4

Re: AHK: А может ли HotKey работать на заднем плане?

я так понял что в место Send нужно прописать ControlSend

5

Re: AHK: А может ли HotKey работать на заднем плане?

Mupppa пишет:

я так понял что в место Send нужно прописать ControlSend

Да, это вместо

Send

.
Приведи пример своего кода и мы постараемся тебе помочь!

6 (изменено: Mupppa, 2011-09-02 15:52:06)

Re: AHK: А может ли HotKey работать на заднем плане?

вот пример, это простой цикл блуждания по меню программы SDK вот мне надо сделать что бы во время этого цикла я мог пользоваться ПК и цикл не кидался на любое активное окно а именно в окне SDK работал.

WinWait, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
IfWinNotActive, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, , WinActivate, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
WinWaitActive, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
Loop, 100
{
Send, {LEFT}
Sleep,5000
Send,{LEFT}
Sleep,10000
Send,{LEFT}
Sleep,50000
Send,{LEFT}
}

Примерно догадался что ControlSend нужно в место сенд вписывать, а вот куда вписывать ControlSendRaw не знаю и вообще нужно ли оно там?

7

Re: AHK: А может ли HotKey работать на заднем плане?

#IfWinActive

8

Re: AHK: А может ли HotKey работать на заднем плане?

это типа если окно активно что бы работал цикл? Но мне надо что бы цикл не прирывал работу.

9 (изменено: Grey, 2011-09-02 18:34:55)

Re: AHK: А может ли HotKey работать на заднем плане?

2 Mupppa Тогда изучайте ControlSend, вот тут я пользовался этой команой, желательно почитать сообщения выше, чтобы понять суть скрипта.

10 (изменено: Mupppa, 2011-09-02 23:46:42)

Re: AHK: А может ли HotKey работать на заднем плане?

там программа работающая в фоновом редиме и она затрагивает по любому стороннии процессы пк записывая нажатия кнопок. Мне надо что бы цикл работал автономно не мешая работе пк. Тоесть запустил цикл на определенное окно активировал дургое окно, а цикл будет сам по себе в тихоря пыхтеть не кидаясь на любое активное окно и не прерываясь при неактивности рабочей области. Я как понимаю нужно все это прописать в шапке цикла но я всего два дня занимаюсь вообще программированием ну тоесть программа сама записывает цикл нажатий кнопок я слегка коректирую. Если кому то не сложно пропишите мне такой цикл и я смогу спать спокойно)))
Вот интересующий меня скрипт сделан он при помощи автоскриптвратера из инструментов в АХК

WinWait, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
IfWinNotActive, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, , WinActivate, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
WinWaitActive, [1] S60 3rd Ed. FP1 MIDP - winscw udeb, 
Loop, 100
{
Send,{HOME}
Sleep, 3000
Send,{DOWN}
Sleep, 3000
Send,{DOWN}
Sleep, 3000
Send,{RIGHT}
Sleep, 3000
Send,{ALTDOWN}1{ALTUP}
Sleep, 3000
Send,{ALTDOWN}1{ALTUP}
Sleep, 3000
Send,{ALTDOWN}1{ALTUP}
Sleep, 3000
Send,{ALTDOWN}1{ALTUP}
Sleep, 3000
}

А и если не трудно дайте ссылку на самоучитель по АХК где бы я смог просмотреть доступные команды и их описание на языке чайников)) Зарание спасибо моему спасителю)))

11

Re: AHK: А может ли HotKey работать на заднем плане?

Mupppa, пожалуйста, используйте знаки препинания в предложениях — это облегчает понимание.

12

Re: AHK: А может ли HotKey работать на заднем плане?

Думаю, что вместо - [1] S60 3rd Ed. FP1 MIDP - winscw udeb, нужно указать класс окна, по этому скрипт для блокнота (тут опять-таки наглядно показано как находить/менять класс), код который выдал AutoScriptWriter я немного изменил (после запуска скрипта нужно активировать окно):

App = Notepad ; блокнот только для теста
WinWaitActive, % "ahk_class" App
Loop, 100
{
   ControlSend,, {Home}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {Down}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {Down}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {Right}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {AltDown}1{AltUp}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {AltDown}1{AltUp}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {AltDown}1{AltUp}, % "ahk_class" App
   Sleep, 3000
   ControlSend,, {AltDown}1{AltUp}, % "ahk_class" App
   Sleep, 3000
}

Заметил, что действие Alt в команде ControlSend не имеет силы, в отличие от просто команды Send (проверял на клавише Shift - всё нормально, т.е. работает также как и в команде Send).

13 (изменено: Mupppa, 2011-09-03 09:48:52)

Re: AHK: А может ли HotKey работать на заднем плане?

Алт не срабатывает? Нужно сочетание Alt+1 как его тогда сделать?

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
[1] S60 3rd Ed. FP1 MIDP - winscw udeb
ahk_class E32KernelWindow

Вот что мне выдает винспай по моей прогамме, я подставляю выделеный текст в место блакнота запускаю цикл, программа вылетает.

14

Re: AHK: А может ли HotKey работать на заднем плане?

Mupppa пишет:

Нужно сочетание Alt+1 как его тогда сделать?

Если есть такой пункт в строке меню программы, туда можно долезть посредству WinMenuSelectItem и тогоже ControlSend. Как пример:

DetectHiddenWindows, On
Run, notepad.exe, %A_WinDir%\System32, Hide, WinPID
Sleep, 250
WinMenuSelectItem, % "ahk_pid" WinPID, , 5&, 3&
Sleep, 250
ControlSend,, {Enter}, % "ahk_pid" WinPID
Sleep, 250
WinKill, % "ahk_pid" WinPID

F5::Reload
Esc::ExitApp

Этот скрипт запускает многострадальный блокнот (в скрытом виде), выбирает из строки меню вкладку справка, далее в ней о программе, закрывает окно описания, и прибивает сам блокнот (повтор на ф5, выйти можно на эскейп).

Mupppa пишет:

...программа вылетает.

АХК тоже программа, так, что вылетает я не понял.

15 (изменено: Mupppa, 2011-09-03 11:12:59)

Re: AHK: А может ли HotKey работать на заднем плане?

Если есть такой пункт в строке меню программы, туда можно долезть посредству WinMenuSelectItem и тогоже ControlSend. Как пример:

В SDK сочетание Alt+1 заменяет левую софт клавишу сотового телефона (SDK эмулятор сотового телефона s60)

АХК тоже программа, так, что вылетает я не понял.

Извеняюсь))) Вылетает SDK. Запускаю цикл активирую окно SDK и оно маментально закрывается.

16

Re: AHK: А может ли HotKey работать на заднем плане?

Чесно говоря, я не знаю, почему падает Ваш SDK, м.б. ему не нравятся вводимые комбинации {AltDown}1{AltUp} (альтов же нет, водится только единица), можно попробовать как я выше уже писал, но только мне нужна картинка окна, с выбранным пунктом (чей хоткей альт+1) в строке меню. Примерно вот так:

http://i078.radikal.ru/1109/0b/f4ba63189760.jpg

17 (изменено: Mupppa, 2011-09-03 12:17:42)

Re: AHK: А может ли HotKey работать на заднем плане?

http://s005.radikal.ru/i209/1109/c3/4813d0a0c0d4.jpg
Левая верхняя кнопка это левая софт кнопка. Ана не находится в меню программы, потому ваш метод не подходит(((
Нажатие на кнопку происходит либо прямым кликом мышкой либо сочетанием горячих клавишь Alt+1

18

Re: AHK: А может ли HotKey работать на заднем плане?

Если в программе нельзя перемещать текущее выделение на комбинацию кнопок к примеру шифт+таб, или нет опции изменить хоткей, тогда можно сливать воду.

19 (изменено: Mupppa, 2011-09-03 13:00:17)

Re: AHK: А может ли HotKey работать на заднем плане?

к сожалению нет нельзя. Как думаете автопилот не будет альтернативой АХК? Видел где то тут пост что он легко работате в фоновом режиме.

20

Re: AHK: А может ли HotKey работать на заднем плане?

Не пользовался такой программой.