Что нового

Запуск программы с помощью скрита, работа с меню, переключение на другое окно

Fail100500

Новичок
Сообщения
5
Репутация
0
Добрый день,
весь день провел в поисках, и так как ваш форум открыт для поисковиков - врядли что похожее я видел тут,

Вопроса 3:

1) Как можно запустить программу, я так понимаю должно быть что-то вроде
Run C:/path_/program.exe? Ничего что я за сегодня просмотрел мне не помогло в этом. (искал не только на русском языке)


2) С открытым окном программы нужно активировать меню:
autoit.png

т.е. грубо говоря нажать на Operate >>> Connect to remote panel.


3) Запущено окно например с названием "Чат"
Нужно на него переключиться и отправить сообщение.

И все это хотелось бы иметь одним скриптом.
т.е. запускается 2 программы, выбирается меню Operate > Connect to remote panel, туда построчно вводятся какие-то данные, и уже после этого в окно чата отправляется сообщение о начале сессии.

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

Спасибо заранее ! )
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Пример к 1.
Код:
Run ( "C:\Program Files\Internet Explorer\iexplore.exe")

Пример к 2.1
Код:
WinActivate("Getting Started")
Send("{F10}")
Send("{Right}")
Send("{Down}")
Send("{ENTER}")

Пример к 3
Код:
WinActivate("Чат")
Send("Привет. Как дела? Что делаешь?" & "{ENTER}")

Пример к 3.1
Код:
Run("notepad.exe")
WinWaitActive("Безымянный — Блокнот")
ControlSend("Безымянный — Блокнот", "", "Edit1", "Привет. Как дела? Что делаешь?" & "{ENTER}")
В этом случае не требуется активность окна. =)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Fail100500 сказал(а):
т.е. грубо говоря нажать на Operate >>> Connect to remote panel.

Тут лучше бы
Код:
WinMenuSelectItem()

если конечно там меню определяются.

Отсюда http://kickme.to/inqsoft скачать InqSoft Window Scanner, запустить, навести мишень на окно программы, в которой нужно нажать пункт меню, потом нажать кнопку "Меню" в окне Scanner, далее сохранить дерево меню в текстовый файл и потом оттуда взять данные для функции WinMenuSelectItem, как-то так:


Код:
WinMenuSelectItem( "Getting Started", "", "пункт меню", "подпункт меню")
 
Автор
F

Fail100500

Новичок
Сообщения
5
Репутация
0
zlo-kazan сказал(а):
Пример к 1.
Код:
Run ( "C:\Program Files\Internet Explorer\iexplore.exe")

Пример к 2.1
Код:
WinActivate("Getting Started")
Send("{F10}")
Send("{Right}")
Send("{Down}")
Send("{ENTER}")

Пример к 3
Код:
WinActivate("Чат")
Send("Привет. Как дела? Что делаешь?" & "{ENTER}")

Пример к 3.1
Код:
Run("notepad.exe")
WinWaitActive("Безымянный — Блокнот")
ControlSend("Безымянный — Блокнот", "", "Edit1", "Привет. Как дела? Что делаешь?" & "{ENTER}")
В этом случае не требуется активность окна. =)

Спасибо, это очень исчерпывающе, насчет 2 пункта - как же я сам не догадался, все думал, думал, как же с этим меню работать и искал решения не видя наиболее простого.)

Вопрос ещё такой, как при закрытии программы можно уловить это самое закрытие? К примеру есть эвент закрытия LabVIEW и для этого эвента нужно так же само отправить сообщение в чат, мол сессия закончена.

И способен ли Autoit на просмотр IP с условием,
подробнее:
Используется программа хамачи, которая создает новое подключение и через cmd > ipconfig можно найти этот IP, он начинается с "5.", можно ли как-то узнать это значение и есть ли у него какая-то переменная условная например "IPv4 3".

И наверное последний вопрос :smile:
Как можно сделать для программы хамачи автоматический вход в чат?
Ниже показано, как оно происходит:
hamachin.png

по нажатию ПКМ.
По идее нужно как-то навести курсор на свой ник и нажать ПКМ, дальше все обеспечивается нажатием на "О", только вот как это сделать (навести на ник)

Благодарю отписавшихся, вы очень помогли :smile:
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Нас сколько помню Хамачи создает отдельный сетевой интерфейс... вытащить можно через
@IPAddress
Пример:
Код:
Msgbox(0,0, @IPAddress1 & @CRLF & @IPAddress2 & @CRLF & @IPAddress3 & @CRLF & @IPAddress4)
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Fail100500 сказал(а):
Как можно сделать для программы хамачи автоматический вход в чат?
По идее нужно как-то навести курсор на свой ник и нажать ПКМ, дальше все обеспечивается нажатием на "О", только вот как это сделать (навести на ник)
1. Когда работал с хамачи там в настройках поставил автоматический вход... (но версия была немного другой...)
2. Можно тупо за "титл" перетащить и навести на определенный пиксель.
Код:
WinMove("Hamachi","",0,0)
MouseMove("left", 50, 160)
3. Через AutoIt Window Info или http://autoit-script.ru/index.php?topic=4579.0
Вытащить части GUI и поиграться с ControlSend/ControlClick...
 
Автор
F

Fail100500

Новичок
Сообщения
5
Репутация
0
Спасибо буду пробовать)
Тему пока не буду решенной назначать, может ещё что будет неясно, но сделаю это как только напишу скрипт.
 
Автор
F

Fail100500

Новичок
Сообщения
5
Репутация
0
Не вышел трюк с
Код:
WinActivate("Getting Started")
Send("{F10}")
Send("{Right}")
Send("{Down}")
Send("{ENTER}")

С этим тоже:
Код:
WinMenuSelectItem( "Getting Started", "", "пункт меню", "подпункт меню" )



:(
Программа, которую советовал WSWR не определяет дерево для LabVIEW, к сожалению. (тестил на винраре - там работает)

Т.е. проблема с пунктом 2 в 1 посте осталась нерешенная :(
Сейчас пробую трюки с перемещением окна и перемещением мышки, кликами и т.д., надеюсь разберусь.

Есть что-нибудь для замера расстояния пикселей?
+

...

мхахах, проще было нажать Alt+O :rofl:
 
Автор
F

Fail100500

Новичок
Сообщения
5
Репутация
0
Скрипт готов. :IL_AutoIt_1:

Осталось немного подшлифовать и все.
Спасибо огромное zlo-kazan
Меняй ник на Добро :smile:
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
OffTopic:
Fail100500 сказал(а):
Меняй ник на Добро :smile:
:rofl:
Меня давно знакомые зовут пушистое зло... ;D

P.S Ношу его в память о былых временах... турнирах по CS1.6/Dota и т.д. Команда так называлась zLo... потому, что всех в городе убивала... :smile: А те кто не знал команду называли меня по тегу от (zLo | Molotok)... так и прижилось... :smile: (в Молотка тоже народ переименовал когда первый раз teamkill сделал)
 
Верх