控制另一个程序

实现思路分析:
1、找到目标程序的句柄,可以通过窗口的caption属性获取,使用
FindWindow(nil,  ' app caption ' );

2、找到你要控制的组件,如Button,使用
FindWindowEx(ParentHandle,  0 , nil,  ' btn caption');
3、发送Windows消息控制目标程序
SendMessage( HEdt, BM_CLICK,  0 0  );
下面是实现该功能的Delphi代码:
unit Unit1;

Interface uses interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 
= Class (class(TForm)
    btn1: TButton;
    mmo1: TMemo;
    edt1: TEdit;
    edt2: TEdit;
    btn3: TButton;
    lbl1: TLabel;
    lbl2: TLabel;
    btn4: TButton;
    procedure btn1Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
  
private
    { 
Private declarations }
  
public
    { 
Public declarations }
  
end;

var
  Form1: TForm1;

implementation

uses
  ShellAPI;

{$R 
*.dfm}
var
  HApp,
  HEdt : THandle;

procedure TForm1.btn1Click(Sender: TObject);
begin
  HApp :
= FindWindow(nil, PAnsiChar(edt1.text));
  mmo1.Lines.Add(IntToStr(HApp));

  HEdt :
= FindWindowEx(HApp, 0, nil, PAnsiChar(edt2.text));
  mmo1.Lines.Add(IntToStr(HEdt));
  SendMessage( HEdt, BM_CLICK, 
00 );
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
  ShellExecute(handle, 
'open', 'otherapp.exe',nil,nil, SW_SHOWNORMAL{SW_SHOWMAXIMIZED});
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
  SendMessage( HApp, WM_CLOSE, 
00 );
end;

end.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值