大悟还俗

邮箱 key_ok@qq.com 我的收集 http://pan.baidu.com/share/home?uk=1177427271
posts - 236, comments - 8, trackbacks - 0, articles - 0
  新随笔  :: 联系 :: 订阅 订阅  :: 管理

用DDE控制Word

Posted on 2013-11-18 10:30 大悟还俗 阅读(...) 评论(...) 编辑 收藏

DDE(Dynamic Data Exchange),称为动态数据交换。用于进程间的通讯,看看他如何来和Word交互。

在System页签下有TDdeClientConv组件,拖一个放到界面上,然后我们写如下代码:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    DdeClientConv1: TDdeClientConv;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
//执行word的宏命令
    procedure RunMacro(macname:PChar);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//执行保存文件的宏命令
  RunMacro('[FileSave]');
end;

procedure TForm1.RunMacro(macname: PAnsiChar);
var
  macro: array [0..80] of char;
begin
  //设置于word的连接
  DdeClientConv1.SetLink('WinWord','System');
  //打开连接
  if not DdeClientConv1.OpenLink then
  begin
    ShowMessage('打开连接出错!');
  end;
  if not DdeClientConv1.ExecuteMacro(macname,False) then
  begin
    ShowMessage('执行宏命令出错!');
  end;
end;

end.
View Code