Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual C++ / MFC / WTL > Нажать на кнопку в приложении |
Автор: MaIron 26.09.17, 14:58 |
Тема стара, но подниму её снова. Задача такая, есть несколько приложений работающих в фоновом режиме, приложения сами на MFC - обычный диалог, но с динамическим содержимым, вывод биржевых графиков от сторонних разработчиков. Нужно одновременно в каждом перемещать мышь и нажимать на кнопки. Ключевое слово одновременно. Есть классический пример не работает вообще. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> PostMessage(hWnd, WM_MOUSEMOVE, 0, MAKELPARAM(x, y)); PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x, y)); PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(x, y)); В PreTranslateMessage сообщения приходят, отлавливаются, но само содержимое не реагирует на них. Второй вариант: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> INPUT input; input.type = INPUT_MOUSE; input.mi.dx = 10; input.mi.dy = 10; input.mi.dwFlags =( MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE|MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP); input.mi.mouseData = 0; input.mi.dwExtraInfo=NULL; input.mi.time=10; SendInput(1, &input, sizeof(INPUT)); Работает, но это по сути просто отправка команд перемещения устройства на блок обработки ввода операционной системы. Запустить это сразу для двух приложений невозможно. Вопрос, возможно ли реализовать, что-то вроде SendInput, но что бы команды передавались только выбранному приложению или внутри приложения. Или же такой вариант невозможен в принципе. Это тоже будет результатом. |
Автор: ter_nk_ 27.09.17, 07:53 |
По-моему невозможно, не могут же два приложения одновременно быть активными (фокус). |
Автор: MaIron 27.09.17, 08:16 |
Цитата ter_nk_ @ По-моему невозможно, не могут же два приложения одновременно быть активными (фокус). Т.е. получается стандартным методом никак. |
Автор: ter_nk_ 27.09.17, 08:25 |
По-моему никак. Я бы наверное думал в сторону как в каждом конкретном приложении создавать свою "псевдомышь" - курсор и отрисовывать ее поверх этого окна. |
Автор: ЫукпШ 27.09.17, 12:56 |
Цитата MaIron @ Нужно одновременно в каждом перемещать мышь и нажимать на кнопки. Ключевое слово одновременно. А что важнее - нажимать на кнопки или перемешать мышь ? Или запускать обработчик нажатой кнопки из стороннего приложения ? |
Автор: MaIron 27.09.17, 18:41 |
Важнее перемещать мышь с нажатой кнопкой. |
Автор: MaIron 03.10.17, 13:44 |
Вопрос остался нерешенным. Но актуальность потерял. Так, что закрываю тему. |