Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Нажатие кнопки в чужом окне


Автор: deniska91 20.11.2014, 23:28
Все с одной стороны просто. Нужно найти чужое окно по имени и нажать в нем кнопку.
Я нахожу нужное мне окно функцией FindWindow, затем нужную кнопку с помощью FindWindowEx. Мне возвращается правильных хендл кнопки, сверял с тем, что показывает Spy++

Теперь пытаюсь её нажать
Код

PostMessage( hWndChild, WM_ACTIVATE, WA_ACTIVE, NULL );
PostMessage( hWndChild, WM_LBUTTONDOWN, 0, 0);
PostMessage( hWndChild, WM_LBUTTONUP, 0, 0);


Не работает...

И так
Код

SendMessage( hWndChild, WM_ACTIVATE, 1, 0 );
SendMessage( hWndChild, WM_ENABLE, 1, 0 );
SendMessage( hWndChild, WM_SETFOCUS, 1, 0 );
SendMessage( hWndChild, BM_CLICK, 0, 0 );


Не работает... Причем фокус устанавливается, но кнопка не нажимается. Не работает также keybd_event( 32, 0, WM_KEYDOWN, 0 ); при установленном фокусе на кнопке.

В чем может быть проблема?


Автор: deniska91 21.11.2014, 00:33
Проблема решена - все работает, если запускать программу от имени администратора!

Автор: Dem_max 21.11.2014, 04:38
Надо паузы между командами выставлять, ну и не забывать заполнять Wparam и lparam

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)