Что нового

[Окна, Диалоги] Можно ли поработать с интерфейсом другого приложения не сворачивая текущего?

  • Автор темы 123321
  • Дата начала
1

123321

Гость
Такая задачка:
DOS-приложение запущенное в полноэкранном режиме из под WinXP по команде генерит файл, автоит скрипт мониторит его наличие и при появлении отправляет файл в win приложение, где над ним производятся некоторые манипуляции и файл сохраняется, работа с DOS-приложением продолжается. Win-приложение управляется только с GUI, командной строки нет. Хочу что-бы DOS-приложение не сворачивалось когда начинается работа в вин. Можно/нельзя, если можно, как? Может с доп софтом?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Можно. См. функции Control... в файле справки. Так же тебе понадобится утилита AutoIt Window Info, что входит в дистрибутив AutoIt. В принципе это все.


Код:
Run('calc.exe')
WinWaitActive('Calculator', '', 3)
$hWnd1 = WinGetHandle('Calculator')
WinMove($hWnd1, '', 50, 50)

Run('cmd.exe')
WinWaitActive(@SystemDir & '\cmd.exe', '', 3)
$hWnd2 = WinGetHandle('Untitled - Notepad')
WinMove($hWnd2, '', 120, 150)

WinSetState($hWnd1, '', @SW_DISABLE)
Sleep(500)
ControlClick($hWnd1, '', '[CLASS:Button; INSTANCE:7]')
Sleep(500)
ControlClick($hWnd1, '', '[CLASS:Button; INSTANCE:11]')
Sleep(500)
ControlClick($hWnd1, '', '[CLASS:Button; INSTANCE:15]')
WinSetState($hWnd1, '', @SW_ENABLE)
 
Верх