Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

Vozmozhno li naiti v ToolBar-e Knopki   Найти похожие ветки 

 
sergeii ©   (2004-10-20 10:40) [0]

С помощю toolbar := FindWindowEx(PLU, 0, "TToolBar", nil) я нашол HWND toolbar-а, а возможно ли найти на нём кнопочку "PLU", или ету всю операцию можно сделать через МENU, но как его найти? или просто можно переместить туда мышь и нажать кнопку, но как тогда и это совершить?
Спасибо.


 
sergeii ©   (2004-10-20 11:24) [1]

Mne nado Clicknut na etoi knopke. Spasibo


 
inic ©   (2004-10-20 12:32) [2]

Последовательность, ИМХО:

1. Запросить у тулбара количество кнопок (TB_BUTTONCOUNT)
2. Пройтись циклом по всем конпкам, просматривая их text (TB_GETBUTTONTEXT)
3. Ну и нажать/отпустить кнопку можно с помощью TB_PRESSBUTTON.


 
sergeii ©   (2004-10-20 13:11) [3]

Можно было бы каой примерчик.
Спасибо


 
inic ©   (2004-10-20 13:49) [4]


var ToolbarHandle: THandle;
   i, L, ButtonCount: Integer;
   Buf: PChar;
   Button: TTBButton;
begin
 ToolbarHandle := ToolBar1.Handle;
 ButtonCount := SendMessage(ToolbarHandle, TB_BUTTONCOUNT, 0, 0);
 Buf := nil;
 for i := 0 to ButtonCount - 1 do begin
   SendMessage(ToolbarHandle, TB_GETBUTTON, i, Integer(@Button));
   L := SendMessage(ToolbarHandle, TB_GETBUTTONTEXT, Button.idCommand, 0);
   ReallocMem(Buf, L + 1);
   SendMessage(ToolbarHandle, TB_GETBUTTONTEXT, Button.idCommand, Integer(Buf));
   if StrComp(Buf, "ToolButton3") = 0 then begin

     SendMessage(ToolbarHandle, TB_PRESSBUTTON, Button.idCommand, 1);
     SendMessage(ToolbarHandle, TB_PRESSBUTTON, Button.idCommand, 0);

     Break;
   end;
 end;
 ReallocMem(Buf, 0);


Почему - то жирный код не работает. Буду читать...


 
sergeii ©   (2004-10-20 14:56) [5]

почемуто возвращает пустую строку Buf


 
inic ©   (2004-10-20 15:10) [6]

Ты имеешь в виду в конце процедуры ? Тогда конечно.

А свой код, производимый над кнопкой, надо вместо жирного поставить (например спрятать ее можно).


 
sergeii ©   (2004-10-20 15:26) [7]

if StrComp(Buf, "") = 0 then begin
Здесь должно быть название кнопки так? и ещё когда выполняет етот код выдаёт ошибку


 
sergeii ©   (2004-10-20 15:40) [8]

Вот так работает толко кнопочка нажата но деиствий которые должны происходить после нажатия на кнопку не происходит
toolbar := FindWindowEx(PLU, 0, "TToolBar", nil);
SendMessage(toolbar, TB_PRESSBUTTON, 1, 1);
а есле
toolbar := FindWindowEx(PLU, 0, "TToolBar", nil);
SendMessage(toolbar, TB_PRESSBUTTON, 1, 1);
SendMessage(toolbar, TB_PRESSBUTTON, 1, 0);
то тогда вообсхе ни чего не происходит, т.е. нажав на кнопку должно появитса другая форма, она не появляетса.
Спасибо


 
inic ©   (2004-10-20 16:44) [9]

Если точно известно, что тулбар находится в делфи приложении, можно просто напросто сделать, так:

var
 ToolbarHandle: THandle;
 T: TToolButton;
 b: TTBButton;
begin
 SendMessage(Toolbarhandle, TB_GETBUTTON, <индекс кнопки>, Integer(@b));
 Pointer(t) := Pointer(b.dwData);
 t.Click;
end;


т.е. когда делфи с помощью мастдая создает кнопки, он сует указатель на объект класса TToolButton в поле dwData или lParam.


 
sergeii ©   (2004-10-20 17:14) [10]

Может есть какие ещё способы нажать кнопочку в тоолбаре другой программы, по тому что ето тоже не идиот. Та програма по всему написана на Делфи
Спасибо.


 
inic ©   (2004-10-20 17:57) [11]

Тренировке на эксплорерном тулбаре показали, что видимо нет :(

А зачем вообще это надо, в какой проге надо нажать ?



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
1-1101015885
Кириешки
2004-11-21 08:44
2004.12.05
Как определить что под курсором находится ссылка ?


14-1100596602
wisekaa
2004-11-16 12:16
2004.12.05
Ищу информацию по времени рассчета


14-1100471215
Дип
2004-11-15 01:26
2004.12.05
Языки программирования


1-1101107709
uny
2004-11-22 10:15
2004.12.05
Алгоритм - как выделить число


1-1101198790
Jann
2004-11-23 11:33
2004.12.05
Нужна прога





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский