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

Вниз

Как нажать кнопку?   Найти похожие ветки 

 
Геннадий   (2005-02-11 15:17) [0]

Есть окно, Handle которого известен. На окне (то есть форме) размещена кнопка (Button). Каким образом возможно программно (из другого приложения) "нажать" эту кнопку? Поэкперементировал с SendMessage, но ничего не получилось. Подскажите, пожалуйста, как нажать кнопку?


 
Bes ©   (2005-02-11 15:23) [1]

а там помойму надо 2 сенд мессайджа

первый WM_LBUTTONDOWN
второй WM_LBUTTONUP типа щелчек


 
Jay1982 ©   (2005-02-11 15:28) [2]


PostMessage(handle, WM_KEYDOWN, #32, 0);


 
Юрий Зотов ©   (2005-02-11 15:34) [3]

Только Handle должен давать окно КНОПКИ.
Используйте, например, FindWindowEx.


 
Jay1982 ©   (2005-02-11 15:48) [4]

Jay1982 ©   (11.02.05 15:28) [2]
Только не #32, а просто 32 :)


 
Геннадий   (2005-02-11 16:06) [5]

Всем спасибо!  :)


unit CloseWnd;

interface

uses
 Classes, Windows, ShellAPI, Messages, Dialogs;

type

 TCloseWnd = class(TPersistent)
 private
   FCaption: string;
 protected
   function GetHandleForWnd(AWndCaption: PChar): THandle;
 public
   procedure DoCloseWindow;
   procedure PressButton(AButName: string);
   //
   property WndCaption: string read FCaption write FCaption;
 end;

implementation

{ TCloseWnd }

procedure TCloseWnd.DoCloseWindow;
var
 H  : THandle;
begin
 H:= GetHandleForWnd(PChar(FCaption));
 SendMessage(H, WM_CLOSE, 0, 0);
end;

function TCloseWnd.GetHandleForWnd(AWndCaption: PChar): THandle;
begin
 Result:= FindWindow(NIL, AWndCaption);
end;

procedure TCloseWnd.PressButton(AButName: string);
var
 Txt: PChar;
 H  : THandle;
 I  : integer;
 Par: THandle;
begin
 GetMem(Txt, 100);
 for i:=1 to 100 do
 begin
   Par:= GetHandleForWnd(PChar(FCaption));
   H:= FindWindowEx(Par, 0, "TButton", PChar(AButName));
   GetWindowText(H, Txt, 100);
   if Txt = AButName then
   begin
     PostMessage(H, WM_KEYDOWN, 32, 0);
     PostMessage(H, WM_KEYUP, 32, 0);
   end;  
 end;
end;

end.




Страницы: 1 вся ветка

Текущий архив: 2005.02.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
3-1106727322
Behemoth
2005-01-26 11:15
2005.02.27
Проблема и логинами при приаттачивании базы MSSQL


1-1108394254
Garry
2005-02-14 18:17
2005.02.27
Как работать в Дельфи с HEX кодами....


11-1091893467
Spok
2004-08-07 19:44
2005.02.27
Глюк KOL.TStrList.Count


3-1106659874
Behemoth
2005-01-25 16:31
2005.02.27
Как переименовать MSSQLSERVER


14-1107432712
КаПиБаРа
2005-02-03 15:11
2005.02.27
Опрос - рефакторинг