Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1141313299
аматор
2006-03-02 18:28
2006.03.19
Что такое FlatSQL


3-1138133335
ANB
2006-01-24 23:08
2006.03.19
Как отсортировать дерево в оракле ?


1-1139580437
EvilDream
2006-02-10 17:07
2006.03.19
Быстрый поиск ближайшего соседа


3-1138362893
neat
2006-01-27 14:54
2006.03.19
Фильтр для Table


1-1139933625
Robert
2006-02-14 19:13
2006.03.19
Richedit добавить текст в гиперссылку





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