Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.038 c
11-1092485443
=Sniper=
2004-08-14 16:10
2005.02.27
RichEdit1 := (Sender as TKolRichEdit); как будет в KOL?


14-1107854809
Beginner_
2005-02-08 12:26
2005.02.27
А где в XP находится File Manager ?


1-1107963572
Chajnik
2005-02-09 18:39
2005.02.27
Подможите пож. подсчитать символы


14-1107779180
wicked
2005-02-07 15:26
2005.02.27
Наблюдения над ошибкой 500....


8-1100430732
_PG_
2004-11-14 14:12
2005.02.27
Мастера, нужна помощь (3Д куб)




   Наверх