在Windows 10之前的Windows版本上,我可以从以下注册表项获取默认浏览器:
HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet
Run Code Online (Sandbox Code Playgroud)
在Windows 10上,我将Microsoft Edge设置为默认浏览器.但我没有看到上面的注册表项有任何变化.
但是,在以前版本的Windows上,它可以正常工作.
如何在Windows 10上获取默认浏览器?
我们公司正在将我们的帮助系统迁移到 Flare 下的 HTML5 格式。我们还在 URI 命令行上使用 Flare CSHID 为帮助系统添加了基于主题的访问,以直接访问主题,例如index.html#CSHID=GettingStarted启动GettingStarted.html帮助页面。
我们的应用程序是用 C++ 编写的,并利用 Win32ShellExecute()函数生成与 HTTP 关联的默认应用程序以显示帮助系统。我们注意到,ShellExecute()当没有指定标签时,它可以正常工作,例如
ShellExecute(NULL, _T("open"), _T("c:\\Help\\index.html"), NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
此函数将启动与查看 HTML 页面相关联的默认浏览器,在这种情况下,File:///协议处理程序将启动,浏览器将启动,您将file:///c:/Help/index.html在地址栏中看到。
但是,一旦添加了#该主题的信息,就ShellExecute()无法打开页面
ShellExecute(NULL,_T("open"),_T("c:\\Help\\index.html#cshid=GettingStarted"),NULL,NULL,SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
如果浏览器完全打开,您将被定向到file:///c:/Help/index.htm没有#cshid=GettingStarted主题标识的l 。
请注意,这只是一个问题,如果 File 协议处理程序通过 参与ShellExecute(),如果帮助系统存在于网络上,并且 Http 或 Https 协议处理程序参与,一切正常。
对于我们的客户,其中一些在专用 LAN 上,我们不能总是依赖 Internet 访问,因此我们的帮助系统必须随应用程序一起提供。
我正在编写Windows窗体应用程序(c#),并且需要检测用户的计算机中是否安装了“ Microsoft-Edge”。
我当前正在使用此注册表位置:
[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages\Microsoft.MicrosoftEdge_20.10240.16384.0_neutral__8wekyb3d8bbwe]
"Path"="C:\\Windows\\SystemApps\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
Run Code Online (Sandbox Code Playgroud)
用regex“ Microsoft.MicrosoftEdge”之后。如果“路径”存在,那么我知道边缘已安装。
有没有更好的方法来检测边缘?如果我检测到我正在Windows 10上运行,并且默认情况下Win10带有edge,那会更好吗?最好的方法是什么?
我试图从批处理文件中打开一个具有特定目标锚点的HTML文件,如下所示:
start iexplore %~dps0nl752.htm#01
exit
Run Code Online (Sandbox Code Playgroud)
nl753.htm 在当地的车道上.
如何让Windows在默认浏览器而不是Internet Explorer中使用目标锚点打开HTML文件?
registry ×2
windows-10 ×2
batch-file ×1
c# ×1
flare ×1
hashtag ×1
http ×1
shellexecute ×1
windows ×1