Нажатие кнопки
Короче, есть процедура:
wnd:=findwindow(nil,'Program name');
btn:=findwindowex(wnd,0,nil,'Start');
sendmessage(btn,WM_COMMAND, BN_CLICKED shl 16,Btn)
она как понимаете эмулирует нажатие кнопки в чужом приложении. Запустил пару программ чтоб проверить, но почему-то ничего не нажимается. А вот если создать прогу на delphi, на ней кнопка нажимается.
Объсните в чем разница? Почему не работает?
Может есть другие способы нажать на кнопку?
Цитата:
Originally posted by rur
Извиняюсь за повторение...
Короче, есть процедура:
wnd:=findwindow(nil,'Program name');
btn:=findwindowex(wnd,0,nil,'Start');
sendmessage(btn,WM_COMMAND, BN_CLICKED shl 16,Btn)
она как понимаете эмулирует нажатие кнопки в чужом приложении. Запустил пару программ чтоб проверить, но почему-то ничего не нажимается. А вот если создать прогу на delphi, на ней кнопка нажимается.
Объсните в чем разница? Почему не работает?
Может есть другие способы нажать на кнопку?
Извиняюсь за повторение...
Короче, есть процедура:
wnd:=findwindow(nil,'Program name');
btn:=findwindowex(wnd,0,nil,'Start');
sendmessage(btn,WM_COMMAND, BN_CLICKED shl 16,Btn)
она как понимаете эмулирует нажатие кнопки в чужом приложении. Запустил пару программ чтоб проверить, но почему-то ничего не нажимается. А вот если создать прогу на delphi, на ней кнопка нажимается.
Объсните в чем разница? Почему не работает?
Может есть другие способы нажать на кнопку?
может быть вся фишка в том, что в программах, собраных в разных системах программирования разные способы обработки сообщений...
есть другой способ "программного" кликания:
VOID mouse_event(
DWORD dwFlags, // flags specifying various motion/click variants
DWORD dx, // horizontal mouse position or position change
DWORD dy, // vertical mouse position or position change
DWORD dwData, // amount of wheel movement
DWORD dwExtraInfo // 32 bits of application-defined information
);
попробуй