Dynamic Data Exchange (DDE) 是 Windows 早期進程間通訊機制,透過「服務|主題|項目」三層命名。Word 作為 DDE Server,服務名 WinWord,主題 System,項目為巨集命令 (如 [FileNew])。
TDdeClientConv,命名 DdeClient。DdeClient.SetLink('WinWord', 'System')。OpenLink 建立會話。ExecuteMacro(PChar('[Command]'), False) 發送命令。CloseLink 釋放。procedure TForm1.RunWordMacro(const MacroCmd: string);
var
Macro: array[0..255] of Char;
begin
DdeClient.SetLink('WinWord', 'System');
if not DdeClient.OpenLink then
begin
ShowMessage('無法連接 Word,請確認 Word 已啟動');
Exit;
end;
StrPCopy(Macro, MacroCmd);
if not DdeClient.ExecuteMacro(Macro, False) then
ShowMessage('巨集執行失敗:' + MacroCmd);
DdeClient.CloseLink;
end;
| 功能 | 巨集命令 |
|---|---|
| 新增文件 | [FileNew] |
| 開啟舊檔 | [FileOpen] |
| 儲存 | [FileSave] |
| 另存新檔 | [FileSaveAs] |
| 列印 | [FilePrint] |
| 關閉文件 | [FileClose] |
| 結束 Word | [FileExit] |
| 剪下 | [EditCut] |
| 複製 | [EditCopy] |
| 貼上 | [EditPaste] |
| 復原 | [EditUndo] |
| 重做 | [EditRedo] |
| 全選 | [EditSelectAll] |
| 插入分頁符 | [InsertBreak] |
| 插入表格 | [TableInsertTable] |
| 插入列 | [TableInsertRow] |
| 刪除列 | [TableDeleteRow] |
| 切分表格 | [TableSplit] |
| 選取列/欄/表格 | [TableSelectRow] / [TableSelectColumn] / [TableSelectTable] |
| 表格排序 | [TableSort] |
| 檢視模式切換 | [ViewNormal] / [ViewPage] / [ViewOutline] |