我的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 張樹坤 閱讀(288) 評論(0)  編輯  收藏 所屬分類: Windows編程


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


          網站導航:
           
          主站蜘蛛池模板: 舞钢市| 抚顺县| 神池县| 永宁县| 子长县| 伊通| 平江县| 星子县| 赞皇县| 梅州市| 图片| 洮南市| 平江县| 民勤县| 辽宁省| 公安县| 洛川县| 东乡族自治县| 天津市| 彭水| 白水县| 忻城县| 连云港市| 太和县| 宝山区| 无极县| 开阳县| 吉安县| 江川县| 万年县| 盈江县| 南京市| 甘洛县| 密云县| 嘉兴市| 内江市| 丹寨县| 九龙城区| 虹口区| 松溪县| 乐安县|