![]() |
delphi, управление чужим приложением
delphi, управление чужим приложением. Нужна информация, желательно подробная.
|
Что конкретно имеется ввиду?
|
технология называется COM (Componrnt Object Model) попробуй поискать с таким запросом
|
Через COM можно управлять только если само то приложение поддерживает COM.
|
смысл заключается в том, чтобы передавать определенные команды, как будто они происходят от имени пользователя, но проблема состоит в том, что при использовании функций findwindow(ex) не находится окно и кнопки.
TApplication-TForm1-TPanel Вот что показывает Winsight. Так вот в этой цепочке TApplication я нахожу, а вот TForm1 нет. Кроме того еще winsight не показывает кнопки после TPanel. |
Вот что выдает WinSight
Вложений: 1
Прикрепил картинку...
|
2 nudlles
0. найди утилитку Spy++ идет в поставке с VS6.0 оч полезная вещь, фактически позволяет определить тип, ид, имя любого окна в Винде. 1. Потом посмотри еще такие ф-и GetNextWindow, GetWindow, GetDesktopWindow... как точно ими пользоваться щас не скажу, смотри MSDN... |
Цитата:
Перемещение мышки вниз - сообщение WM_MOUSE_DOWN Перемещение мышки вправо - сообщение WM_MOUSE_RIGHT Нажатие левой кнопки на мышке - сообщение WM_MOUSE_KEYCLICK_1 Нажатие кнопки - сообщение WM_KEY_DOWN Отжатие кнопки - сообщение WM_KEY_Up клик по кнопке - сообщение WM_KEY_PRESS и т.д. код кнопки смотриться отдельной функцией , к тому же там очередь Короче подробней поищи данную инфу. Вот если научишься передавать данные сообщение приложению то тогда поимеешь контроль над ним. |
Для полной эмуляции мыши и клавиатуры вместо посылки сообщений лучше использовать функции :
mouse_event keybd_event или заменяющую обе эти функции - SendInput Однако хочу сказать что задача нетривильная. Даже коммерческие программы которые делают автоматизацию GUI не работают в некоторых случаях. PS : Могу подогнать примеры поиска окон и эмуляции действий юзера, но не дельфи а на C++ |
Цитата:
|
господа, есть след. задача: при старте своей программы запустить стороннюю программу и сделать её "частью" своей. А именно: скрыть заголовок, поместить окно чужой программы "на форму" своей программы, сделать так, чтоб при изменении положения своей программы сохранялось положение чужой программы относительно формы, чтоб при сворачивании моей формы — чужое тож сворачивалось, при восстановлении — восстанавливалось и т.п.
есть готовое решение? если нет, подскажите плз хотя бы с первой частью — как запустить программу — это понятно. но как потом у неё скрыть заголовок? спасибо всем заранее. |
Опять же делается через события.
CreateProcess RunProcess - потом получаешь хендл (Handle) процесса Затем этому процеccу по его хендлу передаешь события Minimize и Maximize соответсвенно при сворачивании и разворачивании своей программы. Про скрытие заголовка. Когда у тебя будет хендл окна, сделаешь с ним что хочешь. Хочть зеленым цветом закрась все :) |
Код:
Public Sub StickWindow(ParentWindow As Long, ChildWindow As Long, Optional ByVal NoActivate As Boolean = True, Optional ByVal NoShow As Boolean = False)Объявления функции тоже могу выковырять, но, опять же, на VB. А вообще, лучше оращаться на форумы, посвященные программированию sflash, не обижайся, но WM_MOUSE_DOWN - опускание кнопки мыши, а WM_MOUSE_RIGHT вообще такого не знаю. |
Poprobuite podumat o reshenijah w duhe Automation ili o freimworkah.
|
Цитата:
|
| Часовой пояс GMT +4, время: 15:10. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.