1 (изменено: Indy, 2012-05-10 19:37:55)

Тема: AHK: для конкретного свёрнутого окна

Добрый день, есть скрипт, который должен посылать команды в опред. окно, которое должно быть свернутым. Помогите реализовать.

2

Re: AHK: для конкретного свёрнутого окна

Indy пишет:

...есть скрипт...

Где он? , вот к примеру вариант в котором я посылал нажатие клавиши и жал на контрол.

3

Re: AHK: для конкретного свёрнутого окна

Скрипт простой, не считаю нужным его сюда писать, т.к всего лишь посылает в чат одно слово бесконечное число раз с некоторым интервалом.

4 (изменено: Indy, 2012-05-10 16:50:04)

Re: AHK: для конкретного свёрнутого окна

Правильно понимаю, что нужно лишь вставить след. строку:

WinMinimize, win1, где win1 - название окна?

5

Re: AHK: для конкретного свёрнутого окна

Нужно определить название контрола (если он стандартный), потом можно попробовать послать в него текст используя название класса окна, или части названия и т.п. Вместе с АХК идёт маленькая программа (...\AutoHotkey\AU3_Spy.exe (про неё тут на форуме много говорили, воспользуйтесь поиском)), с помощью её получаете необходимые данные.

6 (изменено: Irbis, 2012-05-10 17:07:31)

Re: AHK: для конкретного свёрнутого окна

Наводим мышкой на окно чата, жмём F12 - если контол стандартный, то в чат пойдет "Строка..."{Enter}

F12::
   MouseGetPos,,, id, ctrl
;   WinMinimize, ahk_id %id% ; раскомментирровать для сворачивания окна
   loop {
      ControlSend, %ctrl%, Строка...`n, ahk_id %id%
      sleep 5000
   }
#F4:: pause ; Win+F4 - старт/стоп

7 (изменено: Indy, 2012-05-11 06:12:29)

Re: AHK: для конкретного свёрнутого окна

Хорошо, коли я нуб - объясню понятнее. Игра SA:MP. Открыть чат - F6, нужно отправить туда /find 1 с интервалом 135 секунд бесконечное число раз в свернутом окне.

8

Re: AHK: для конкретного свёрнутого окна

Помогите пожалуйста, никак не могу сделать.

9

Re: AHK: для конкретного свёрнутого окна

В свёрнутое окно отправляет ControlSend, интервал задаётся Sleep либо Settimer.
Итого 2 комманды.

Пример с блокнотом (подобных примеров в темах форума множество)


#Persistent
Settimer, SendString, 1000 ; 1000 это раз в секунду
return

SendString:
    ControlSend,, некая строка{Enter}, ahk_class Notepad 
    return

Если кликнуть по имени команды в коде выше — откроется соответствующий раздел справки.

10

Re: AHK: для конкретного свёрнутого окна

Спасибо, разобрался.

11

Re: AHK: для конкретного свёрнутого окна

В принципе тема схожа с тем, что меня интересует, потому чтобы не дублировать одно и тоже спрошу здесь.
Собственно мне нужно в неактивный блокнот отправить сообщение, но методом из сообщения №9 -не выходит. Мне нужно отправить сообщение не в блокнот а в первое поле(Edit 1) в окне "заменить" и потом во второе уже другой текст. Пытался класс окна  "заменить" использовать -не помогало.

 
F2::
;WinActivate, ahk_class Notepad ;worldpad окно
WinWait, ahk_class Notepad        ;ждём окно
WinMenuSelectItem, ahk_class Notepad, , 2&,10& ; Заменить
If ErrorLevel
{
    MsgBox, Нет
}
else
{
    ControlClick, Edit 1 ;Клик для поле для замены "что заменить"
    ControlSend, Edit 1, некая строка ;-этот вариант не работает !!!
    ;MsgBox, да
}

12 (изменено: Irbis, 2013-12-05 15:02:46)

Re: AHK: для конкретного свёрнутого окна

unKn0wn пишет:

<...> Пытался класс окна  "заменить" использовать -не помогало. <...>

Плохо пытался. Зачем в Edit1 пробел?

F2::
;WinActivate, ahk_class Notepad ;worldpad окно
WinWait, ahk_class Notepad        ;ждём окно
WinMenuSelectItem, ahk_class Notepad, , 2&,10& ; Заменить
sleep 10
If ErrorLevel
   MsgBox, Нет
else
   ControlSend, Edit1, некая строка, ahk_class #32770
; или 
;   ControlSend, Edit1, некая строка, Заменить
Return

13 (изменено: serzh82saratov, 2013-12-05 15:16:32)

Re: AHK: для конкретного свёрнутого окна

Я это вижу как-то так:


 ; Заменяем А на В
1::
    Process, Exist, notepad.exe
    Pid := ErrorLevel 
    WinMenuSelectItem, ahk_pid %Pid%, , 2&,10& ; Заменить
    WinWait, ahk_class #32770 ahk_pid %Pid%
    ControlSetText, Edit1, a, ahk_class #32770 ahk_pid %Pid%
    ControlSetText, Edit2, b, ahk_class #32770 ahk_pid %Pid%
    Control, Check, , Button5, ahk_class #32770 ahk_pid %Pid% 
    WinClose, ahk_class #32770 ahk_pid %Pid%
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

14

Re: AHK: для конкретного свёрнутого окна

Понял, спасибо.

Плохо пытался. Зачем в Edit1 пробел?

Дык ControlClick сьел пробел, да и WinSpy -показал там пробел.