代码之家  ›  专栏  ›  技术社区  ›  F43nd1r

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

  •  0
  • F43nd1r  · 技术社区  · 7 年前

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

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

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

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

    1 回复  |  直到 7 年前
        1
  •  4
  •   F43nd1r    7 年前
    1. 应用程序需要打包为 exe

    我用过 launch4j 为了这个。确保 textVersion icon 已设置。

    1. 需要创建许多注册表项。我通过查看 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'
    
    1. 现在可以在windows设置中选择应用程序