| imho.ws |
![]() |
|
|
|
# 5 |
|
Newbie
Регистрация: 12.01.2005
Сообщения: 39
![]() |
смысл заключается в том, чтобы передавать определенные команды, как будто они происходят от имени пользователя, но проблема состоит в том, что при использовании функций findwindow(ex) не находится окно и кнопки.
TApplication-TForm1-TPanel Вот что показывает Winsight. Так вот в этой цепочке TApplication я нахожу, а вот TForm1 нет. Кроме того еще winsight не показывает кнопки после TPanel. |
|
|
|
|
# 7 |
|
Junior Member
Регистрация: 16.07.2005
Адрес: Украина, г. Ровно
Пол: Male
Сообщения: 140
![]() |
2 nudlles
0. найди утилитку Spy++ идет в поставке с VS6.0 оч полезная вещь, фактически позволяет определить тип, ид, имя любого окна в Винде. 1. Потом посмотри еще такие ф-и GetNextWindow, GetWindow, GetDesktopWindow... как точно ими пользоваться щас не скажу, смотри MSDN...
__________________
Та программа не глючит, которая не написана |
|
|
|
|
# 8 | |
|
Junior Member
Регистрация: 25.09.2003
Сообщения: 53
![]() |
Цитата:
Перемещение мышки вниз - сообщение WM_MOUSE_DOWN Перемещение мышки вправо - сообщение WM_MOUSE_RIGHT Нажатие левой кнопки на мышке - сообщение WM_MOUSE_KEYCLICK_1 Нажатие кнопки - сообщение WM_KEY_DOWN Отжатие кнопки - сообщение WM_KEY_Up клик по кнопке - сообщение WM_KEY_PRESS и т.д. код кнопки смотриться отдельной функцией , к тому же там очередь Короче подробней поищи данную инфу. Вот если научишься передавать данные сообщение приложению то тогда поимеешь контроль над ним. |
|
|
|
|
|
# 9 |
|
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Для полной эмуляции мыши и клавиатуры вместо посылки сообщений лучше использовать функции :
mouse_event keybd_event или заменяющую обе эти функции - SendInput Однако хочу сказать что задача нетривильная. Даже коммерческие программы которые делают автоматизацию GUI не работают в некоторых случаях. PS : Могу подогнать примеры поиска окон и эмуляции действий юзера, но не дельфи а на C++
__________________
Best Regards Последний раз редактировалось alexey_ma; 30.10.2007 в 13:59. |
|
|
|
|
# 10 | |
|
Junior Member
Регистрация: 25.09.2003
Сообщения: 53
![]() |
Цитата:
|
|
|
|
|
|
# 11 |
|
Full Member
Регистрация: 15.11.2002
Адрес: Moscow
Сообщения: 834
![]() ![]() ![]() ![]() ![]() |
господа, есть след. задача: при старте своей программы запустить стороннюю программу и сделать её "частью" своей. А именно: скрыть заголовок, поместить окно чужой программы "на форму" своей программы, сделать так, чтоб при изменении положения своей программы сохранялось положение чужой программы относительно формы, чтоб при сворачивании моей формы — чужое тож сворачивалось, при восстановлении — восстанавливалось и т.п.
есть готовое решение? если нет, подскажите плз хотя бы с первой частью — как запустить программу — это понятно. но как потом у неё скрыть заголовок? спасибо всем заранее. |
|
|
|
|
# 12 |
|
Junior Member
Регистрация: 25.09.2003
Сообщения: 53
![]() |
Опять же делается через события.
CreateProcess RunProcess - потом получаешь хендл (Handle) процесса Затем этому процеccу по его хендлу передаешь события Minimize и Maximize соответсвенно при сворачивании и разворачивании своей программы. Про скрытие заголовка. Когда у тебя будет хендл окна, сделаешь с ним что хочешь. Хочть зеленым цветом закрась все
|
|
|
|
|
# 13 |
|
Junior Member
Регистрация: 30.03.2006
Адрес: Беларусь
Сообщения: 79
![]() |
Код:
Public Sub StickWindow(ParentWindow As Long, ChildWindow As Long, Optional ByVal NoActivate As Boolean = True, Optional ByVal NoShow As Boolean = False)
Dim Style As Long
Style = GetWindowLong(ChildWindow, GWL_STYLE)
Style = Style Or WS_CHILD
SetWindowLong ChildWindow, GWL_STYLE, Style
SetParent ChildWindow, ParentWindow
SetWindowLong ChildWindow, GWL_HWNDPARENT, ParentWindow
Style = SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE
If NoActivate Then Style = Style Or SWP_NOACTIVATE
If Not NoShow Then Style = Style Or SWP_SHOWWINDOW
SetWindowPos ChildWindow, _
HWND_TOP, 0&, 0&, 100, 100, _
Style
End Sub
Объявления функции тоже могу выковырять, но, опять же, на VB. А вообще, лучше оращаться на форумы, посвященные программированию sflash, не обижайся, но WM_MOUSE_DOWN - опускание кнопки мыши, а WM_MOUSE_RIGHT вообще такого не знаю.
__________________
Дай человеку рыбу - он будет сыт один день. Научи человека рыбачить - он будет сыт всю жизнь. |
|
|
|
|
# 14 |
|
Administrator
Регистрация: 13.05.2002
Сообщения: 11 227
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Poprobuite podumat o reshenijah w duhe Automation ili o freimworkah.
__________________
Осколки прошлого, как снег, закрутит ураган времён, В ушедший день для нас навек, обрушив мост, Оставив в наших душах след, тьма уплывёт за горизонт, И в чистом небе вспыхнет свет, свет новых звёзд. |
|
|
|
|
# 15 | |
|
Junior Member
Регистрация: 25.09.2003
Сообщения: 53
![]() |
Цитата:
Так что не смотри на эту информацию как на 100% верную, я только так сказать указал путь, где копать.
|
|
|
|