Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизНажатие неактивной кнопки в чужом приложении Найти похожие ветки
← →
azl © (2006-03-02 15:10) [0]Добрый день. Ув. мастера,
приведите, пожалуйста, ПРИМЕР, как можно неактивную кнопку чужого приложения сделать активной.
Заранее очень благодарен.
← →
Руслан © (2006-03-02 15:23) [1]SendMessage(BtnWnd,WM_ENABLE,0,0);
← →
begin...end © (2006-03-02 15:28) [2]> Руслан © (02.03.06 15:23) [1]
Это не будет работать. Вместо этого можно использовать EnableWindow.
← →
Руслан © (2006-03-02 15:31) [3]или EnableWindow(BtnWnd,True);
← →
Руслан © (2006-03-02 15:33) [4]
> begin...end © (02.03.06 15:28) [2]
> > Руслан © (02.03.06 15:23) [1]
>
> Это не будет работать. Вместо этого можно использовать EnableWindow.
>
Опередил, пока второе сообщение дошло )))
← →
azl © (2006-03-02 15:48) [5]Спасибо.
Только немного не ясно BtnWnd - это что?var
BtnWnd: HWND
begin
BtnWnd:=???
EnableWindow(BtnWnd,True);
end;
← →
Руслан © (2006-03-02 15:52) [6]BtnWnd получаешь с помощью FindWindowEx()
Там первый параметр - хендл родительского окна, находишь с FindWindow()
2-й - должен быть 0 кажется,
3й - класс кнопки, например Tbutton
4-й кажется тоже 0 или nil - точно не помню )))
← →
azl © (2006-03-02 15:52) [7]Придумал.
BtnWnd := FindWindowEx(FindWindow("TForm1","Form1"),0,"TButton","Button1");
Так работает.
А как можно сделать чтобы кнопка в чужом приложении становилась активной при наведении на нее курсора мыши?
Спасибо.
← →
Руслан © (2006-03-02 15:53) [8]ну, в общем, посмотри справку на FindWindowEx()
и FindWindow()
← →
Руслан © (2006-03-02 15:54) [9]Кажется есть функция WindowFromPoint, которая возвращает хендл окна под курсором. попробуй
← →
azl © (2006-03-02 15:55) [10]Спасибо, большое.
← →
Crash Coredump © (2006-03-02 16:03) [11]Кнопки просто так недоступными не делаются
← →
psa247 © (2006-03-03 09:50) [12]
> Crash Coredump © (02.03.06 16:03) [11]
По хорошему надо делать через ActionList и тогда никакие такие "штуки" не пройдут.
← →
azl © (2006-03-03 11:50) [13]private
{ Private declarations }
procedure ShowHwndAndClassName(CrPos: TPoint);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var
rPos: TPoint;
begin
if Boolean(GetCursorPos(rPos)) then ShowHwndAndClassName(rPos);
end;
procedure TForm1.ShowHwndAndClassName(CrPos: TPoint);
var
hWnd: THandle;
aName, bName: array [0..255] of Char;
begin
hWnd := WindowFromPoint(CrPos);
Edit1.Text := IntToStr((hWnd));
if Boolean(GetClassName(hWnd, aName, 256)) then
Edit4.Text := string(aName);
{else
Label2.Caption := "ClassName : not found";}
if Boolean(GetWindowText(hWnd, bName, 256)) then
Edit3.Text := string(bName);
Edit2.Text := IntToStr(GetParent(hWnd));
EnableWindow(FindWindowEx(FindWindow(PChar(string(aName)),PChar(string(bName))), 0,nil,nil),True);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c