在我的应用中,我使用HTML文件打开报告,如下所示:
//pStrPath is file:///C:/Users/appts/AppData/Local/Temp/Report_View.htm
ShellExecute(hParentWnd, L"", pStrPath, NULL, NULL, SW_SHOW);
在我的开发机器上,它在网络浏览器中打开,但是当我刚刚在新安装的Windows 10上对其进行测试时,它显示此对话框:
因此,如何防止它显示并从一开始就使用“继续使用此应用”选项?否则,这可能会使我的用户感到困惑。
PS。请注意,Edge已安装,并且如果我双击它们可以打开
.htm
文件。 最佳答案
提到Launching Applications (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)时,我们注意到文本
对象动词
可用于对象的动词本质上是您在对象的快捷菜单上找到的项目。若要查找可用的动词,请在注册表中 HKEY_CLASSES_ROOT \ CLSID {object_clsid} \ Shell \ verb
常用动词包括:
文件,将启动其关联的应用程序。
假定双击通常等效于在对象的快捷菜单中选择“打开”,如果我们为函数提供 open 动词,则我们可以预期其行为与用户双击的行为相同。 -请在下面查看Ken的评论
这样,我们可以期望以下代码达到期望的结果。
//pStrPath is file:///C:/Users/appts/AppData/Local/Temp/Report_View.htm
ShellExecute(hParentWnd, L"open", pStrPath, NULL, NULL, SW_SHOW);