Как программно нажать на кнопку в своей программе? Скорее всего надо отослать ей сообщение. Только с какими параметрами? invoke SendMessage,hwndbutton1,BN_CLICKED,button1ID,1 Модератору: Приношу извинения за создание 2-х одинаковых тем, похоже у меня глюки с броузером. Если не сложно удалите эту тему пожалуйста и переместите в раздел WASM Win32 остальные 3 темы, созданные мной. Спасибо.
n0p, MSDN большой. Аббревиатуру непонял - phck3. И поиск тоже ничего не дал. А если искать ответ на вопрос как нажать кнопку, что тогда в строку поиска вводить?
Можно родителю кнопки послать WM_COMMAND, соответствующим образом оформив сопутствующие сообщению wParam и lParam. Родитель подумает, что нажата кнопка и среагирует так же, как и на нажатие, только ничего нажиматься не будет
а как програмно нажать на кнопку ОК в совсем дугом окне известно лишь имя родительского процесса и имя окна.
2IceStudent ну найти я могу вот Target byte 'Notepad', 0 invoke FindWindow, addr Target, 0 а как найти IDOK?
На 100% не уверен насчёт поиска, но если так, то Код (Text): invoke FindWindow,addr Target,0 invoke SendMessage,eax,WM_COMMAND,BN_CLICKED shl 16 + IDOK,0
нет не вышло. invoke SendMessage,eax,WM_COMMAND,BN_CLICKED shl 16 + IDOK,0 вместо lParam недолжен быть 0 а должен быть хэндл кнопки ОК.так сказала утилита SPY++ =) но это тоже не прокатило. что делать?
Надпись (caption) есть у кнопки? Если есть, то FindWindowEx, или EnumChildWindows + callback, в котором сравнивать caption предлагаемых тебе child hwnd с тем caption, который у тебя есть. Как совпадёт - значит hwnd кнопки у тебя в руках. Тогда и посылай ей своё сообщение.
2cresta ну написал szCaption byte 'OK', 0 invoke FindWindowEx, addr szTarget, addr szCaption, 0, 0 а потом какое сообщения посылать ему?WM_COMMAND?
rmn FindWindow не ищет дочерние окна (в т.ч. кнопки). ror Код (Text): hParent dd ? hButton dd ? ButtID dd ? Target db <заголовок окна-родителя кнопки>, 0 ButtCaption db <надпись на кнопке>, 0 ButtClass db 'button',0 invoke FindWindow, NULL, addr Target ;ищем хэндл родителя mov hParent,eax invoke FindWindowEx, hParent, NULL, addr ButtClass, addr ButtCaption ;ищем хэндл кнопки .if (eax) mov hButton,eax ;хэндл кнопки invoke GetDlgCtrlID, hButton mov ButtID,eax ;ID кнопки invoke SendMessage, hParent, WM_COMMAND, ButtID, hButton .endif
cresta извини, но опять возникла проблема. если заголовок на русском то FindWindow не находит его. FindWindowW тоже непомог.