在我的应用中,我使用HTML文件打开报告:
//pStrPath is file:///C:/Users/appts/AppData/Local/Temp/Report_View.htm
ShellExecute(hParentWnd, L"", pStrPath, NULL, NULL, SW_SHOW);
在我的开发机器上,它在Web浏览器中打开,但是当我刚刚在新安装的Windows 10上测试它时,它显示了这个对话框:
那么如何防止它被显示并从一开始就“继续使用此应用程序”选项?否则,我的用户可能会感到非常困惑。
PS。请注意,Edge已安装,如果我双击它们可以打开.htm
文件。
答案 0 :(得分:2)
参考Launching Applications (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)我们注意到文字
<小时/> 对象动词
对象可用的动词本质上是您在对象的快捷菜单上找到的项目。要查找可用的动词,请在 HKEY_CLASSES_ROOT \ CLSID {object_clsid} \ Shell \ verb
下的注册表中查找常用动词包括:
假设双击是,通常相当于选择&#34;打开&#34;在对象的快捷菜单中,如果我们提供带有打开动词的函数,我们可以预期该行为将反映用户双击的行为。 - 请参阅Ken的评论
因此,我们可以期望以下代码实现所需的结果。
//pStrPath is file:///C:/Users/appts/AppData/Local/Temp/Report_View.htm
ShellExecute(hParentWnd, L"open", pStrPath, NULL, NULL, SW_SHOW);