【发布时间】:2016-01-19 13:40:50
【问题描述】:
在我的软件中,我需要打开一个纯文本文件以供查看。我选择使用默认的网络浏览器来做到这一点,因为它肯定在任何系统上都可用。 (请注意,由于“仅供查看”的限制,我不能使用记事本。)
为此,我执行以下操作:
ShellExecute(NULL, L"open", TextFilePath, NULL, NULL, SW_SHOWNORMAL);
这适用于所有网络浏览器,除了...(你猜对了)IE。这显示了这条消息:
“Internet Explorer 限制此网页运行脚本或 ActiveX 控件”
文本文件显然没有任何脚本或 Active X 控件。这只是一个.txt 文件!但可以理解的是,这条消息让一些用户感到担忧,他们认为我的程序试图在他们的计算机上运行“坏”的东西。
所以我很好奇,是否有办法在不修改任何全局 IE 设置的情况下防止出现这种愚蠢的消息?
【问题讨论】:
-
你是如何让 ShellExecute 运行 IE 而不是记事本的?对于 .txt 文件,“打开”动词默认为记事本,不是吗?
-
为什么需要在网络浏览器中打开
.txt文件?我会在应用程序中合并它的查看方法(因为您可以很容易地编写代码以将所述.txt文件的内容作为string写入,如果您可以将其写入.txt文件,或者制作它进入HTML页面。 -
@HarryJohnston:真的。唔。我刚刚在
TextFilePath变量中提供了一个.txt 文件的路径,然后它在IE 中打开了它。我相信“编辑”会在记事本中打开它。 -
@DDPWNAGE:是的。我应该承认我走的是捷径。
-
这似乎很奇怪 - 如果您在资源管理器中双击文本文件会发生什么?还是右键单击它并选择“打开”? (这个特定文本文件的行为与任意文本文件的行为是否不同?)
标签: c++ windows internet-explorer winapi