Текущий архив: 2003.08.21;
Скачать: CL | DM;
Вниз
Сгенерировать событие OnClick у кнопки чужого окна Найти похожие ветки
← →
delphimun (2003-06-18 14:41) [0]Допустим есть форма с caption-ом "Window", а на этой форме кнопка c caption-ом "Add", как сгенерировать событие OnClick на кнопке с caption-ом "Add"?
Заранее благодарен.
← →
mrcat © (2003-06-18 15:08) [1][
BM_CLICK
]
← →
Chieftain (2003-06-18 15:20) [2]Хым, получить хендл нужного окна (EnumWindows), потом получить хендл кнопки(EnumChildWindows), потом послать кнопке сообщение(SendMessage). Короче, без WinAPI - никак.
← →
delphimun (2003-06-18 17:18) [3]А как работает EnumChildWindows? Вот, что я сней там настряпал, но ничего не работает:
program Project1;
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
var
a:integer;
hwnd:integer;
function EnumChildProc(HWND:THandle; lParam:LPARAM):boolean;stdcall;
begin
showmessage(inttostr(hwnd)); //я предполагаю, что это и есть //описатель дочернего компанента
Result:=True;
end;
begin
hwnd := findwindow(nil,"Form1");
a := EnumChildWindows(hwnd,@EnumChildProc, 1);{зачем нужен параметр iparam? И вот сдесь у меня ошибка несоответствия типов integer и longbool.}
end.
Вобщем я совсем запутался, не мог бы кто скинуть мне примерчик кода.Я знаю caption дочернего окна, мне нужно получить его описатель
← →
[NIKEL] © (2003-06-18 18:06) [4]слушай, не парься... зайди на Королевство Дельфи и почитай статью прям то что тебе надо - ссылки не помню, зайди и посмотри в прошедших новостях
← →
delphimun (2003-06-18 18:57) [5]Обыскал почти все, а кроме примеров на С++ ничего не нашел, может кто покажет пример или кинет ссылочку
← →
mrcat © (2003-06-18 19:07) [6]Плохо искал ;)
function RestructElements(aHandle: HWND; aInfo: Pointer): boolean; stdcall;
begin
result := true; // must be TRUE! See F1 :)
end;
hProg := FindWindow(nil, моя_программа);
if hProg <> 0 then
begin
EnumChildWindows(integer(hProg), @RestructElements, 0);
end;
этот код работает.
← →
delphimun (2003-06-18 19:28) [7]mrcat Больщое спасибо, я правда уже сам разобрался без этой непонятной ф-ии:
var
w_handle:integer;
b_handle:integer;
my_string:string;
begin
my_string:="aaa";
w_handle:= FindWindow(nil, "abc");
b_handle:= FindWindowEx(w_handle, 0, nil, "Open");
SendMessage(b_handle, wm_LButtondown, 0, 0);
SendMessage(b_handle, wm_LButtonUp, 0, 0);
end;
Страницы: 1 вся ветка
Текущий архив: 2003.08.21;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.016 c