我的Java方面博客

          天下難事必做于易,天下大事必做于細

          常用鏈接

          統計

          最新評論

          控制另一個程序

          實現思路分析:
          1、找到目標程序的句柄,可以通過窗口的caption屬性獲取,使用
          FindWindow(nil, 'app caption');

          2、找到你要控制的組件,如Button,使用
          FindWindowEx(ParentHandle, 0, nil, 'btn caption');
          3、發送Windows消息控制目標程序
          SendMessage( HEdt, BM_CLICK, 00 );
          下面是實現該功能的Delphi代碼:
          unit Unit1;

          interface

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

          type
            TForm1 
          = 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.

          posted on 2007-09-01 13:23 張樹坤 閱讀(286) 評論(0)  編輯  收藏 所屬分類: Windows編程


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吉林省| 班玛县| 东乌珠穆沁旗| 连州市| 郴州市| 桐柏县| 河间市| 福安市| 习水县| 尉犁县| 松江区| 大同县| 武宁县| 黑河市| 南通市| 涡阳县| 连云港市| 承德县| 内丘县| 昭苏县| 砚山县| 乐昌市| 临江市| 民乐县| 惠安县| 青铜峡市| 凭祥市| 冷水江市| 黑龙江省| 楚雄市| 邢台市| 濉溪县| 广南县| 大名县| 清流县| 平度市| 舒城县| 峡江县| 黄冈市| 廉江市| 汉寿县|