java - 将 java 应用程序注册为 Windows 10 中的默认浏览器

标签 java browser windows-10 registry

我正在编写一个java应用程序,它可以处理标准链接(http/https)。

如何将我的应用程序注册为在 Windows 10 中打开这些链接(也称为默认浏览器)的默认程序?

我知道我可以在 Windows 设置中选择默认浏览器,但它只显示有限的列表,无法连接自定义程序。

我找到了this ,但它只展示了如何在win10之前做到这一点,而且我不确定它是否可以在java中完成。

最佳答案

  1. 应用程序需要打包为 exe

我用了launch4j为了这。确保设置了 textVersionicon

  • 需要创建许多注册表项。我通过查看 this post 将它们拼凑在一起。 (请通过@Tarun Lalwani链接),this post ,以及由 Firefox 创建的注册表项。这意味着其中一些可能是不必要的。
  • 注册客户

    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\MyApp\Capabilities]
    'ApplicationDescription'='MyApp'
    'ApplicationIcon'='C:\MyApp\MyApp.exe,0'
    'ApplicationName'='MyApp'
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\MyApp\Capabilities\URLAssociations]
    'http'='MyAppURL'
    'https'='MyAppURL'
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\MyApp\DefaultIcon]
    @='C:\MyApp\MyApp.exe,0'
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\MyApp\shell\open\command]
    @='C:\MyApp\MyApp.exe'
    

    注册 URL 处理程序

    [HKEY_LOCAL_MACHINE\Software\Classes\MyAppURL]
    @='MyApp Document'
    'EditFlags'=0x2
    'FriendlyTypeName'='MyApp Document'
    'URL Protocol'=''
    
    [HKEY_LOCAL_MACHINE\Software\Classes\MyAppURL\DefaultIcon]
    @='C:\MyApp\MyApp.exe,0'
    
    [HKEY_LOCAL_MACHINE\Software\Classes\MyAppURL\shell]
    @='open'
    
    [HKEY_LOCAL_MACHINE\Software\Classes\MyAppURL\shell\open\command]
    @='"C:\MyApp\MyApp.exe" --url "%1"'
    

    注册到默认程序

    [HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
    'MyApp'='Software\Clients\StartMenuInternet\MyApp\Capabilities'
    
  • 现在可以在 Windows 设置中选择该应用程序
  • 关于java - 将 java 应用程序注册为 Windows 10 中的默认浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50158532/

    相关文章:

    java - 每次我开始新 Activity 时,ArrayList 共享首选项都会被覆盖

    java - j2me播放视频

    java - 未知主机异常,Apache HttpClient,Java,wunderground

    ruby - 更改由 Watir Webdriver 在 ruby​​ 中创建的浏览器的进程优先级

    silverlight - 使用 Silverlight 进行版本检测

    java - 在运行时抛出异常

    javascript - 您可以使用 javascript 操作浏览器的 WebSocket 连接吗?

    c# - Windows 10 UWP 中的扩展启动画面?

    xaml - 如何在 UWP Windows 10 中重用 XAML 中的网格

    bash - chmod WSL (Bash) 不起作用