我的Java方面博客

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

          常用鏈接

          統計

          最新評論

          控制另一個程序

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

          2、找到你要控制的組件,如Button,使用
          FindWindowEx(ParentHandle, 0, nil, 'btn caption');
          3、發(fā)送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編程


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


          網站導航:
           
          主站蜘蛛池模板: 淳化县| 富蕴县| 平昌县| 诸暨市| 乌拉特中旗| 大新县| 扎鲁特旗| 云浮市| 成安县| 武汉市| 广德县| 马边| 高邮市| 乐山市| 科尔| 正定县| 宁阳县| 横峰县| 金华市| 无为县| 五河县| 教育| 伊通| 平江县| 金湖县| 澎湖县| 唐海县| 英德市| 苏州市| 岑巩县| 济阳县| 固安县| 吉安县| 漠河县| 泸溪县| 军事| 汾西县| 海晏县| 汽车| 竹北市| 集贤县|