Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Геннадий   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
14-1107350591
VID
2005-02-02 16:23
2005.02.27
Нужна русская дока по WinRoute 6.x.x


1-1108135492
Doxygen
2005-02-11 18:24
2005.02.27
Версия Delphi


3-1106770851
MakedoneZ
2005-01-26 23:20
2005.02.27
На счет хорошего стиля и TDBGrid.


4-1105956362
lutik_
2005-01-17 13:06
2005.02.27
Опять DLL


1-1108144299
Gear
2005-02-11 20:51
2005.02.27
Как правильно удалить родной Indy из Delphi 7?





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