![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.03.2009
Сообщений: 5
|
![]()
И снова здравствуйте...
У меня одна и та же проблема -- двойной щелчок мышью по таким-то координатам в чужом окне. Указатель на окно получен. В окне детей нет. В окне есть только куча TImage. Или похожих хреней, у которых нет хэндла. Spy++ при даблклике пишет: <00001> 0001042A P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:50 yPos:64 [wParam:00000001 lParam:00400032 point:(525, 103)] <00002> 0001042A P WM_LBUTTONUP fwKeys:0000 xPos:50 yPos:64 [wParam:00000000 lParam:00400032 point:(525, 103)] <00003> 0001042A P WM_LBUTTONDBLCLK fwKeys:MK_LBUTTON xPos:50 yPos:64 [wParam:00000001 lParam:00400032 point:(525, 103)] <00004> 0001042A P WM_LBUTTONUP fwKeys:0000 xPos:50 yPos:64 [wParam:00000000 lParam:00400032 point:(525, 103)] Когда я посылаю сообщение из кода: AppActivate имя_окна, True SetCursorPos 504&, 100& // на всяк случай PostMessage имя_дочернего_окна, WM_LBUTTONDOWN, &H1, ML(504, 100) PostMessage имя_дочернего_окна, WM_LBUTTONUP, 0, ML(504, 100) PostMessage имя_дочернего_окна, WM_LBUTTONDBLCLK, &H1, ML(504, 100) PostMessage имя_дочернего_окна, WM_LBUTTONUP, 0, ML(504, 100) где ML преобразует две пары в lWord, Spy++ обнаруживает такое: <00005> 0001042A P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:25688 yPos:19 [wParam:00000001 lParam:00136458 point:(504, 100)] <00006> 0001042A P WM_LBUTTONUP fwKeys:0000 xPos:25688 yPos:19 [wParam:00000000 lParam:00136458 point:(504, 100)] <00007> 0001042A P WM_LBUTTONDBLCLK fwKeys:MK_LBUTTON xPos:25688 yPos:19 [wParam:00000001 lParam:00136458 point:(504, 100)] <00008> 0001042A P WM_LBUTTONUP fwKeys:0000 xPos:25688 yPos:19 [wParam:00000000 lParam:00136458 point:(504, 100)] То есть параметры xPos, yPos отличаются. Если я захожу в прогу, на которую хочу сделать даблклик, ставлю фокус на картинку, выхожу в свою прогу, которая должна посылать PostMessage и запускаю её, то всё работает. Проблема в том -- что я либо неправильно пользуюсь PostMessage, либо не на тот элемент посылаю фокус... но как его послать, если нет хэндла?.. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
тебе же Spy++ четко показал
какой IParam нужно передавать... lParam:00400032 попробуй подставить готовый сразу...а не преобразовывать так же попробуй имитировать ВСЕ твои действия Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 07.03.2009
Сообщений: 5
|
![]()
Любой параметр, который я передаю программно, превращается в дефолтовый параметр, который я уже указал
![]() ![]() Почему такой глюк с PostMessage, если SendInput всё делает, как нужно? |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 07.03.2009
Сообщений: 5
|
![]()
Я её даже не проверял, просто по твоему совету (это не ты такой умный, это я такой тупой
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ты на C пишешь?
не знаю можно ли там, но попробуй передавать просто число(например единицу, или там 17) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вручную перемещать индикатор в DBGrid | PilGrim | БД в Delphi | 5 | 04.01.2009 18:43 |
Макрос для обновления формул вручную только в одном листе | Neo007 | Microsoft Office Excel | 7 | 26.09.2008 18:17 |
Копирование *.exe вручную | v01umE | Общие вопросы C/C++ | 4 | 06.07.2008 20:06 |