Войти

Показать полную графическую версию : Управление окном/приложением из CMD


Krokodile
18-02-2012, 21:06
Есть приложение(exe, win_x86), выложить сюда не могу, надо узнать какие параметры запуска оно поддерживает. Если конкретнее, я бы хотел знать как имитировать нажатие мышью на кнопки окна этого приложения. Если скриптовые языки не могут помочь мне в реализации этого дела и я ошибся веткой - принимаются варианты типа C#/C++...
На крайний случай можно вычислить координаты кнопки и переместить на нее указатель мыши.

Iska
18-02-2012, 23:39
Krokodile, А):
надо узнать какие параметры запуска оно поддерживает. »
и Б):
я бы хотел знать как имитировать нажатие мышью на кнопки окна этого приложения »
никак не связаны между собой.

А) — скрытые параметры командной строки — можно попробовать вычислить, воспользовавшись, например, утилитой Strings от Sysinternals, либо разобрать отладчиком.

Б) — нажимать на кнопки из внешнего приложения — это, скорее, к AutoIt/AutoHotKey.

Krokodile
19-02-2012, 09:32
никак не связаны между собой. »
ну почему же.. При запуске приложения открывается окно с интерфейсом, кнопками.. Меня интересует 1 единственная кнопка которую надо как то задействовать. Я нашел 2 способа:
1. Самый простой и логичный - призапуске программы прописать в командную строку параметр, который указал бы программе на запуск функции, используемой в этой кнопке.
2. Если 1й способ не помог - придется реализовать это "механически", то есть с имитировать нажатие мыши на данную кнопку.

Strings от Sysinternals ... AutoIt/AutoHotKey»
спасибо, буду пробовать.

Iska
19-02-2012, 09:50
1. Самый простой и логичный - призапуске программы прописать в командную строку параметр, который указал бы программе на запуск функции, используемой в этой кнопке. »
Если подобное не было предусмотрено при создании приложения — Вы ничего не сможете сделать таким образом. К сожалению, Вы не захотели озвучить название приложения.

Krokodile
19-02-2012, 09:54
Если подобное не было предусмотрено при создании приложения — Вы ничего не сможете сделать таким образом. К сожалению, Вы не захотели озвучить название приложения. »
спасибо и на этом, буду пилить в сторону AutoIt

megaloman
19-02-2012, 11:30
Можно запустить Ваше приложение vbs-скриптом и сымитировать в скрипте нажатие клавиш, единственное,надо знать последовательность их нажатия. Как пример, вот vbs-скрипт, запускающий блокнот (notepad.exe) с параметром - именем несуществующего файла (здесь kuku.txt). В результате блокнот выйдет на запрос о создании файла.
В первом примере скрипт "нажмёт" дважды правую стрелку и Enter (имитируем нажатие клавиши "Отмена"), файл не создастся, блокнот закроется. Перед нажатием последовательности клавиш подождем 5 сек, чтобы блокнот успел загрузитьсяSet WS = CreateObject("WScript.Shell")
Ret = WS.Run("C:\WINDOWS\system32\notepad.exe kuku.txt", 1, False)

WScript.Sleep 5000 ' Пауза в 5 сек
WS.SendKeys "{RIGHT}{RIGHT}{ENTER}" ' Жмём дважды правую стрелку и Enter
Во втормм -скрипт пошлёт Enter, чтобы нажать клавишу запроса (файл создастся), затем скрипт закроет блокнот. Перед нажатием Enter подождем 5 сек, чтобы блокнот успел загрузиться, и перед Alt+F4 тоже подождём 5 сек, чтобы увидеть результат Set WS = CreateObject("WScript.Shell")
Ret = WS.Run("C:\WINDOWS\system32\notepad.exe kuku.txt", 1, False)

WScript.Sleep 5000 ' Пауза в 5 сек
WS.SendKeys "{ENTER}" ' Жмём Enter

WScript.Sleep 5000 ' Пауза в 5 сек
WS.SendKeys "%({F4})" ' Жмём Alt F4
Способ не годится для MS-Dos приложений

Krokodile
19-02-2012, 11:46
Можно запустить Ваше приложение vbs-скриптом и сымитировать в скрипте нажатие клавиш »
да, хотел так сделать, но приложение имеет свой интерфейс и при нажатии ентер ничего не происходит(перебор элементов интерфейса по tab тоже не принес результата). Поэтому придется все же имитировать нажатие мыши.




© OSzone.net 2001-2012