1

Тема: AHK: Алгоритм с использованием WinGetText в приложении

Доброго времени суток
Необходимо, чтобы скрипт проверил есть ли конкретный текст в окне, а затем принял соответствующие действия.

  
#NoTrayIcon
#SingleInstance

Run, C:\Documents and Settings\P.A.N\Рабочий стол\TEST.txt  ; вообще целью является .exe приложение, но я хотел бы понять саму суть.

IfWinActive, TEST.txt - Блокнот

DetectHiddenText, OFF ; если я правильно понимаю работу этой команды, то она необходима, т.к. в приложениях не весь текст виден на экране.

[[[тут мне надо объяснить программе, что если в окне(приложения) появляется текст "123123" она должна сделать действия, приведённые снизу]]]

Send, {ENTER} Текст обнаружен {ENTER} 
SoundBeep

[[[необходимо чтобы скрипт постоянно проверял наличие текста, и когда текс появляется принимал соотв. действия, потом продолжал проверять снова. Когда же окно(приложение) закрывается, скрипт должен выключиться]]]

WinWaitClose, TEST.txt - Блокнот
ExitApp
 

Прочитал много статей, команд, но уложить всё накопленное по полочкам сам не могу.
Прошу вашей помощи.
Если в будущем найду применение этой програмке с радостью поблагодарю откликнущихся не только добрым словом.
Заранее спасибо

2 (изменено: serzh82saratov, 2013-03-28 20:35:29)

Re: AHK: Алгоритм с использованием WinGetText в приложении

Простенький пример:



Run, Notepad.exe
WinWait, Безымянный — Блокнот

GetText:
    DetectHiddenText, On 
    WinGetText, Text , Безымянный — Блокнот
    If (Text ~= ".*123123.*")
        GoTo, Action
    IfWinNotExist, Безымянный — Блокнот
        ExitApp
    Sleep 100
    GoTo, GetText 

Action:
    Send, {ENTER} Текст обнаружен {ENTER} 
    SoundBeep
    GoTo, GetText 

Если в поле блокнота будет "123123" то "Beep"

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Алгоритм с использованием WinGetText в приложении

Хотя проще наверное в цикле:



Run, Notepad.exe
WinWait, Безымянный — Блокнот

Loop    
{
    IfWinNotExist, Безымянный — Блокнот
        ExitApp
    DetectHiddenText, On 
    WinGetText, Text , Безымянный — Блокнот
    If (Text ~= ".*123123.*")
    {    
        Send, {ENTER} Текст обнаружен {ENTER} 
        SoundBeep 
    }
    Sleep 100  
}

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Алгоритм с использованием WinGetText в приложении

Всё хорошо, только вот реагирует только на текст, который можно редактировать,
а если же целью является кнопка (доп. "Файл" или "Правка") в меню блокнота, то не пищит
Как я полагаю проблема в сравнивании текста, а конкретнее, в этом: ".*123123.*"
Если можно, поясните пожалуйста в каких случаях нужно ставть . * %

Run, D:\New
WinWait, D:\New

Loop    
{
    
    IfWinNotExist, D:\New
        ExitApp
    ifWinActive, D:\New
    DetectHiddenText, On 
    WinGetText, Text , D:\New
    If (Text ~= "Список")
    {    
           SoundBeep 
    }
    Sleep 100  
}

http://savepic.org/3138884.jpg
http://savepic.org/3124548.jpg
Спасибо за помощь)
Я и подумать не мог, что есть ещё отзывчивые люди

5

Re: AHK: Алгоритм с использованием WinGetText в приложении

а если же целью является кнопка (доп. "Файл" или "Правка") в меню блокнота, то не пищит

Не понятно что требуется. Нужно объяснить более подробно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Алгоритм с использованием WinGetText в приложении

Если по-простому то:
В приложении иногда появляется текст в центре экрана
необходимо, чтобы при появлении этого текста выполнилось действие, и программа ждала следующего появления текста, чтобы повторить действие.

7

Re: AHK: Алгоритм с использованием WinGetText в приложении

Вам требуется нечто конкретное, а вы ходите вокруг да около. Вы этот текст получаете с помощью WinGetText в переменную или нет?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Алгоритм с использованием WinGetText в приложении

Конкретно:
Иrpa "Wогld оf taпкs"
переодически танк поджигают, и появляется сообщение "TaHk горит". Естественно, это процесс не желательный и чтобы его потушить нужно исп. огнетушитель, привязанный к клавише.
Возникла идея создать скрипт, который будет отслеживать сообщение о пожаре
и сразу же нажимать необходимую клавишу.

Не школьник я, честно

9

Re: AHK: Алгоритм с использованием WinGetText в приложении

Как вы хотите решить свой вопрос если игнорируете наводящие вопросы:

Вы этот текст получаете с помощью WinGetText в переменную или нет?

?
Приложение ваше полноэкранное, а значит врядли это как-то получится сделать при помощи WinGetText.
Может ImageSearch  или PixelSearch поможет, но я их никогда не использовал...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK: Алгоритм с использованием WinGetText в приложении

Вопрос я просто не полностью понимаю
Что значит получать в переменную?
Хотя это и неважно наверное.

у меня в том и состоял осн. вопрос:
Возможно ли "выдрать" с приложения текст.

Мб подскажите как сделать следующее:

Необходимо чтобы при нажатии(и удерживании) Ctrl или Shift цикл приостанавливался, а когда отпускаешь возобновлялся.

спасибо.