Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Нажатие неактивной кнопки в чужом приложении   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.038 c
2-1141048509
49 Cent
2006-02-27 16:55
2006.03.19
Какой компонент поможет отобразить график?


4-1133446523
lucifer
2005-12-01 17:15
2006.03.19
как получить хэндл окна, находящегося под курсором мыши?


15-1140625733
Desdechado
2006-02-22 19:28
2006.03.19
Битая ссылка на сайте


3-1138186225
SdrCoder
2006-01-25 13:50
2006.03.19
Variant or safe array is locked


15-1141034382
Manic Mechanic
2006-02-27 12:59
2006.03.19
про строительство