Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Управление окном/приложением из CMD (http://forum.oszone.net/showthread.php?t=228185)

Krokodile 18-02-2012 21:06 1861608

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

Iska 18-02-2012 23:39 1861706

Krokodile, А):
Цитата:

Цитата Krokodile
надо узнать какие параметры запуска оно поддерживает. »

и Б):
Цитата:

Цитата Krokodile
я бы хотел знать как имитировать нажатие мышью на кнопки окна этого приложения »

никак не связаны между собой.

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

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

Krokodile 19-02-2012 09:32 1861831

Цитата:

Цитата Iska
никак не связаны между собой. »

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

Цитата:

Цитата Iska
Strings от Sysinternals ... AutoIt/AutoHotKey»

спасибо, буду пробовать.

Iska 19-02-2012 09:50 1861837

Цитата:

Цитата Krokodile
1. Самый простой и логичный - призапуске программы прописать в командную строку параметр, который указал бы программе на запуск функции, используемой в этой кнопке. »

Если подобное не было предусмотрено при создании приложения — Вы ничего не сможете сделать таким образом. К сожалению, Вы не захотели озвучить название приложения.

Krokodile 19-02-2012 09:54 1861839

Цитата:

Цитата Iska
Если подобное не было предусмотрено при создании приложения — Вы ничего не сможете сделать таким образом. К сожалению, Вы не захотели озвучить название приложения. »

спасибо и на этом, буду пилить в сторону AutoIt

megaloman 19-02-2012 11:30 1861870

Можно запустить Ваше приложение 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 1861882

Цитата:

Цитата megaloman
Можно запустить Ваше приложение vbs-скриптом и сымитировать в скрипте нажатие клавиш »

да, хотел так сделать, но приложение имеет свой интерфейс и при нажатии ентер ничего не происходит(перебор элементов интерфейса по tab тоже не принес результата). Поэтому придется все же имитировать нажатие мыши.


Время: 04:49.

Время: 04:49.
© OSzone.net 2001-