Главная страница
    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.029 c
14-1100521617
Sanek_Metaller
2004-11-15 15:26
2004.12.05
Рекламный Троян


1-1101197302
denis24
2004-11-23 11:08
2004.12.05
for i:=0 to ScrollBox1.ControlCount-1


3-1099659796
alsov1
2004-11-05 16:03
2004.12.05
Как передать в TQuery параметр равный null


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


3-1099639485
diabolik_krsk
2004-11-05 10:24
2004.12.05
Сохранение данных их ComboBox в Access





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский