![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нажатие кнопки в другой программе [D7, Win2k, WinXP]
pavel_guzhanov © (2004-06-29 11:44:00)Имеется запущенная программа (не моя). Мне известен заголовок формы, и имя кнопки на этой форме. Мне надо из моей программы нажать эту кнопку. Кнопка на тулбаре, известен ее хинт.
Можно ли это сделать, и как?
pavel_guzhanov (2004-07-05 14:30:00) [21]понятно, легко с умным видом копировать куски из хелпа, а вот просто подсказать (всего одну строчку) - так это же трудно, или западло. Не понятно только, чего по форумам лазить и отвечать на вопросы, если все ответы содержат одно и то же : Лезь в хелп. Видно, надо самоутвердиться?
А вот сайты и форумы из-за таких умных теряют посетителей
GuAV (2004-07-05 13:34:00) [22]я же говорил - хелп смотреть.
The TB_PRESSBUTTON message presses or releases the specified button in a toolbar.
TB_PRESSBUTTON
wParam = (WPARAM) idButton;
lParam = (LPARAM) MAKELONG(fPress, 0);
Parameters
idButton
Command identifier of the button to press or release.
fPress
Press flag. If this parameter is TRUE, the button is pressed. If it is FALSE, the button is released.
Return Values
Returns TRUE if successful or FALSE otherwise.
осталось внимательно прочитать это и написать правильно... :)
pavel_guzhanov (2004-07-05 11:23:00) [23]нашел.
SendMessage(TBHnd, TB_PRESSBUTTON('ToolButton7', true),0,0);
Выдает ошибку "Missing operator or semicolon" сразу после открытия скобки после TB_PRESSBUTTON. Если же сделать:
SendMessage(TBHnd, TB_PRESSBUTTON,0,0);
то вообще ничего не происходит, я так понимаю, потому, что не указано, какую кнопку жать.
Может быть я что-то делаю не так?
GrayFace (2004-07-03 08:04:00) [24]А можно слать WM_LBUTTONDOWN и WM_LBUTTONUP.
GuAV (2004-07-02 18:40:00) [25]Модули необходимые подключи?
Не знаешь какой? я тоже. Ищи строку TB_PRESSBUTTON в .pas файлах и подключи модуль где она объявлена.
pavel_guzhanov (2004-07-02 13:14:00) [26]Пардон, а как послать это сообщение? я попробовал вставить это сообщение в SendMessage, Получил [Error] fMain.pas(51): Undeclared identifier: 'TB_PRESSBUTTON'
pavel_guzhanov (2004-07-02 13:03:00) [27]пасиба!
GuAV (2004-07-02 11:28:00) [28]В Delphi выбираем help, там windows sdk.
Пишем TB_ и смотрим, находим TB_PRESSBUTTON...
pavel_guzhanov (2004-07-02 09:10:00) [29]а можно поподробнее или попонятнее, что слать? Что значит TB_xxx?
GuAV (2004-07-01 23:09:00) [30]...а слать надо TB_xxx самому TToolBar
GuAV (2004-07-01 23:07:00) [31]
> 'TToolButton',
У этих кнопок хендла ваще нет.
Dimaxx (2004-07-01 21:57:00) [32]Попробую и отпишу...
pavel_guzhanov (2004-06-30 09:14:00) [33]я определяю хендл окна h функцией FindWindow, все определяется нормально. После этого пишу
BtnHnd:=FindWindowEx(h, 0, 'TToolButton', '&OK');//Находим кнопку
Вот здесь BtnHnd всегда получается равен 0, хотя кнопка такая есть, и caption ее указан стопудово правильно. В чем здесь глюк?
Dimaxx (2004-06-29 20:48:00) [34]FindWindow + PostMessage(<хэндл кнопки>,BM_CLICK,0,0);