Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нажатие кнопки в другой программе [D7, Win2k, WinXP]


Страницы:   1 2

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);


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо