Phạ*_*Bảo 7 registry windows-10
在Windows 10之前的Windows版本上,我可以从以下注册表项获取默认浏览器:
HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet
Run Code Online (Sandbox Code Playgroud)
在Windows 10上,我将Microsoft Edge设置为默认浏览器.但我没有看到上面的注册表项有任何变化.
但是,在以前版本的Windows上,它可以正常工作.
如何在Windows 10上获取默认浏览器?
Pet*_*esh 18
从技术上讲StartMenuInternet,它不是默认浏览器,它只是确定了当您单击Internet开始菜单中的图标时系统的反应.
在Windows 10中,默认应用程序处理通过以下用户选择键完成:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\URLAssociations\(http|https)\UserChoice
Run Code Online (Sandbox Code Playgroud)
其中(http|https)一个例如公正http或公正https
该键ProgId引用了在调用url的open时调用的处理程序应用程序ID.
可以通过键入来查找ProgId值HKEY_CLASSES_ROOT,并且您正在查找Shell/Open/command默认值.对于大多数浏览器,它将是对可执行文件的简单引用.您应该能够使用Application密钥获取ApplicationName等.
现代应用程序将引用LaunchWinApp一个DelegateExecute值来指定要启动的实际应用程序(它从来都不容易,是吗?),在这种情况下,ApplicationName是对应用程序中资源的引用(我不知道如何读取这些值).
但是,为什么要查找这些信息 - 如果它只是打开一个网页,那么你应该使用DesktopAPI(因为java 1.6),例如:
Desktop.getDesktop().browse(new URI("http://msn.com"));
Run Code Online (Sandbox Code Playgroud)
在Windows上,默认应用程序的控制由应用程序确定Default Programs,此应用程序读取应用程序放置在注册表中的信息.
操作系统查找注册应用程序有两个位置:
HKEY_CURRENT_USER\SOFTWARE\RegisteredApplications
Run Code Online (Sandbox Code Playgroud)
和
HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
Run Code Online (Sandbox Code Playgroud)
这些键下的条目是对注册表中相应位置的引用,这些位置与ResisteredApplications您正在查看的键的源相同.
例如,当你安装firefox时,它会在那里标记一个Firefox包含值的条目Software\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities.这是参考HKEY_LOCAL_MACHINE\…\Capabilities.
当您查看该位置时,您将看到该键URLAssociations,该键指定它处理的URL.当您看到两者http和https值时,它很可能是一个Web浏览器.应该可以从密钥中的ApplicationName值获取应用程序的名称Capabilities.此密钥可以引用本地化名称,也可以是其自身的本地化名称.从间接确定值并非易事(值得自己提出问题).
您可以从url的值(例如http - > FirefoxURL)回溯到a HKEY_CLASSES_ROOT\FirefoxURL\Shell\Open\Command来获取可执行文件,再次记住new-ui应用程序是一种特殊情况.
| 归档时间: |
|
| 查看次数: |
32489 次 |
| 最近记录: |