Форум: "Основная";
Текущий архив: 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