如何 打开word文档

lk_richard 2005-07-12 10:13:07
以现在wordapplication 控件方式 打开word 文档 总是停在那里不动 在connect这一步就进行不下去了
请问 哪位高人能给出可行的解决办法
...全文
383 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
winxkm 2005-07-12
  • 打赏
  • 举报
回复
你的进程中可能已经有了winword.exe进程 关闭它!!!
再送你一段相关代码
procedure TRocMemo.LoadFromField(Field: Tfield);
var
Str:oleVariant;
begin
self.Clear;
if not field.IsBlob then
begin
self.Text:=Field.AsString;
exit;
end;
Str:=extractfilepath(application.EXEName)+'temp.doc';
try
FWordApp.Connect;
TBlobField(field).SaveToFile(extractfilepath(application.EXEName)+'temp.doc');
FWordDoc.ConnectTo(FWordApp.Documents.Open(Str,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
FWordApp.Selection.WholeStory;
FWordApp.Selection.Copy;
PasteFromClipboard;
ClearSpaceAndNullRow;
finally
FWordDoc.close;
deleteFile(Str);
end;
end;
winxkm 2005-07-12
  • 打赏
  • 举报
回复
procedure OpenOutExeP(HD:THandle; path: string);
Var
HWndCalculator:HWnd;
Begin
//打开指定的文件;
HWndCalculator:=windows.FindWindow(nil,pchar(path));
if HwndCalculator=0 then
Shellexecute(HD,'open',Pchar(path),'',nil,sw_shownormal);
end;

procedure CloseoutExeP(path: string);
Var
HWndCalculator:HWnd;
Begin
//查找指定的文件是否被打开;
HWndCalculator:=FindWindow(nil,pchar(path));
if HwndCalculator<>0 then
SendMessage(HwndCalculator,WM_CLOSE,0,0);
end;
cyc_ly 2005-07-12
  • 打赏
  • 举报
回复
用,shell()方法去打开就可以了!
lovend 2005-07-12
  • 打赏
  • 举报
回复
用ole創建word對象,幫你頂
loveWife 2005-07-12
  • 打赏
  • 举报
回复
强烈建议楼主用Twebbrower,速度很快,不另打开WORD
winxkm 2005-07-12
  • 打赏
  • 举报
回复
楼上的要注意,如果该文件已经在后台进程中加载了,你再用shell打开就会报错!
亮剑_ 2005-07-12
  • 打赏
  • 举报
回复
有可能是调试时进程中有Word没有被关闭,没有界面的那种,从任务管理器里关掉。
还有如果只是要打开一个Word文档,没必要用OLE,Shell API函数就行了
uses
ShellApi;

ShellExecute(Handle, 'open', 'xxx.doc', nil, nil, SW_SHOWNORMAL);

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧