Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

Внимание! Хотелось бы обобщить вопросы по handle за последние несколько дней. 


Оля   (2002-02-21 10:22) [0]

Любопытная функция, но я не зная как заставить ее работать [D4, Win95/98]
Евгений_т (20.02.02 13:14)
Q: Как заставить мою программу нажать на кнопку в другой программе?

Function PressButton(wind_name,button_name:string):boolean;
Var window_handle,button_handle:integer;
begin
{Ищем хэндл окна}
window_handle:=FindWindow(nil,pchar(wind_name));
if window_handle=0 then
begin
result:=false;
exit;
end;
{Ищем хэндл кнопки}
button_handle:=FindWindowEx(window_handle,0,nil,pchar(button_name));
if button_handle=0 then
begin
result:=false;
exit;
end;
{Посылаем нажатие}
SendMessage(button_handle,bm_click,0,0);
result:=true;
end;
Искать хендлы - RTFM FindWindow, FindWindowEx


А что такое хендлы?
Может кто-то напишет прогу с исходниками и выложит на сайт?
Ето быдет зело полезно...

//==========================================================
Люди обьясните что такое Handle ?

Masa © (20.02.02 17:09)
Люди обьясните что такое Handle ?
И для чего его использовать ?
--------------------------------------------------------------------------------
Romul © (20.02.02 17:44)
Хэндл это типа порядковый номер окна в системе Windows. Весь вынь построен на окнах (как говорят здесь на форуме, edit это тоже окно ;)). Хэндл представляет собой просто число типа integer, которое уникально определяет любое окно в системе, а главное позволяет с помощью него обратиться к этому окну. Ну типа я тебе говоря Masa, читай Help, и ты понимаешь, что это я к тебе обращаюсь, так и окно, только у него вместо имени число типа 238765 или 123456 или 230, ну и т.д.
--------------------------------------------------------------------------------
Masa © (20.02.02 17:55)
Понял.
...
p.s. Пошел читать хелп :)
--------------------------------------------------------------------------------
[NIKEL] © (20.02.02 18:05)
...можно отметить также, что WIN32 присваиваються хэндлы чему угодно - окну, меню, курсору, иконке, файлу и т.д.
Фактически хэндл - это указатель на блок памяти, в котором размещен тот или иной объект.

//==============================================================
//==============================================================

Handle, а как узнать какой номер присвоен тому или иному окну, кнопке?

Оля (20.02.02 22:12)
Handle, а как узнать какой номер присвоен тому или иному окну, кнопке?
--------------------------------------------------------------------------------
Артемий (21.02.02 01:21)
Вопрос я не очень понял, но подозреваю что вам это поможет.
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
const
NamePrefix = "MyEdit";
begin
for i := 1 to 20 do begin
TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
begin
Left := 10;
Top := i * 20;
Parent := self;
end;
end;
end;
--------------------------------------------------------------------------------
Gayrus © (21.02.02 03:14)
>>Артемий А я не понял твоешо кода, здесь спрашивается: Как получить Handle.
--------------------------------------------------------------------------------
MBo © (21.02.02 09:15)
h:=Button1.Handle;
это нужно?

//===============================================================
В кладовке я нашла прогу Sisinfo (255_exe.zip) которая может показать хендл окна. А как всетаки узнать хендл кнопки в программе (чужой, например кнопка сохранить в ворде)?
И как работает функция представленная Евгением?

P.S. Надеюсь не надо объяснять какие перспективы открывает эта технология перед програмерами...



PVOzerski   (2002-02-21 10:42) [1]

Кнопка - это обычно child window по отношению к окну, на котором она располагается.
Получить ее хэндл можно, например, воспользовавшись функцией EnumChildWindows.
А часто, кроме того, окно является диалогом, созданным стандартными средствами WinAPI, и
тогда кнопка откликается на сообщение WM_COMMAND с передачей соответствующего ID,
который можно выяснить, покопавшись в данной программе какой-нибудь смотрелкой ресурсов.
Вообще, описание функций WinAPI входит в Delphi Help (единственно, что напрягает: все
прототипы функций от MS приведены на Си, так что придется их переводить на Паскаль
самостоятельно).




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.028 c
3-94306           Seri                  2002-04-05 07:02  2002.04.29  
Не полная(целая) строка в DBGrid


6-94534           William               2001-12-20 23:21  2002.04.29  
NMHTTP отсылка данных в форму : метод POST


1-94474           radisheva             2002-04-16 13:33  2002.04.29  
Кодировки


1-94472           Sirus                 2002-04-16 11:32  2002.04.29  
Form1:=TForm1.Create(Application); = ?????


3-94345           IronHawk              2002-04-08 15:06  2002.04.29  
Есть что-то вроде Excel-вской сетки для QuickReport ?