注册 登录
编程论坛 VFP论坛

请教一个问题:

wcx_cc 发布于 2022-09-10 01:54, 1450 次点击
表单中添加了一个 Shell.Explorer.2, 在表单内名称是:olecontrol1,调用此控件打开一个word 文档,文档全名:D:/dd.doc.(window7,vfp9.0),
调用语句是: thisform.olecontrol1.navigate("d:/dd.doc"),但总是出现如下提示框,如何把它去掉!用 silent=.t.,不行。试了很多语句都没有成功。
是否存在那么一句代码东东,能把他去掉,直接能打开文档?(不要手工设置的方式),先谢谢!  
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-9-10 02:31编辑过]

7 回复
#2
csyx2022-09-10 10:51
不清楚你为何要用浏览器,而不直接用word来打开

1. 动注册表可以实现不提示
或者
2. 加一个计时器控件,导航到word文件前启动它,然后查找弹出的对话框和其中的打开按钮,用鼠标模拟点击它

[此贴子已经被作者于2022-9-10 11:19编辑过]

#3
sam_jiang2022-09-10 14:21
这是个安全机制,防止explorer打开不必要的文件。
#4
wcx_cc2022-09-10 21:01
谢谢楼上两位!使用游览器打开,可以实现表单内打开word,在表单内可以加入其他控件来控制word,比如:command 进行打印,保存与提交,加入树形控件,
可以很方便的选择任一个word即时打开。谢谢!
#5
csyx2022-09-10 22:20
以下是引用wcx_cc在2022-9-10 21:01:27的发言:
使用游览器打开,可以实现表单内打开word

未必!高版本的Office有bug,默认是在独立窗口打开的,也要改注册表才能嵌入浏览器页面
#6
csyx2022-09-10 22:25
你这样改动注册表,就不会出打开/保存提示框:
程序代码:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\AttachmentExecute\{0002DF01-0000-0000-C000-000000000046}]
"Word.Document.8"=dword:00000000
"Word.Document.12"=dword:00000000

把上面内容复制到记事本,保存后把扩展名改成reg,双击导入注册表即可
如果你熟悉注册表的读写方法,也可以把这两个项目直接用代码写入注册表

[此贴子已经被作者于2022-9-10 22:27编辑过]

#7
wcx_cc2022-09-10 23:23
csyx高手,非常感谢!!看来只能动注册表了。用代码直接写入注册表,能达到目的了。
#8
schtg2022-09-11 05:42
回复 6楼 csyx
学习啦,谢谢!
1