【问题标题】:Launch default Windows browser without URL from .bat/.vbs?从 .bat/.vbs 启动没有 URL 的默认 Windows 浏览器?
【发布时间】:2017-03-27 22:34:48
【问题描述】:

我需要能够启动默认的 Windows 浏览器,无需指定 URL(应该打开主页)。

该解决方案最好不需要编译二进制文件(如 .bat、.vbs 等)。

它也应该可以在 Win7+ 到 Win10 上运行,无需安装任何软件,也无需管理员权限。

我看到了指定 URL 的解决方案,但这对我不起作用。这可能吗?
谢谢!

答案Batch - Default Browser? 不是重复的,因为该答案为您提供了打开 html 文件的默认应用程序,而不是用于 URL 处理的默认浏览器。

【问题讨论】:

  • @Hackoo 没有解决方案。无论如何它都会报告 IE。
  • @IsaacHanson 在这种情况下 IE 被设置为默认打开 HTML,并不意味着链接的答案是错误的。
  • Batch - Default Browser?的可能重复

标签: windows batch-file vbscript registry


【解决方案1】:

以下只是部分答案,它仅查看当前用户注册表并相应地回显响应。 (从第 12 行删除 Echo= 然后删除第 6 行以实际尝试打开浏览器)

@Echo Off
Set "RK1=HKCU\Software\Microsoft\Windows\Shell\Associations"
Set "RK1=%RK1%\UrlAssociations\http\UserChoice"
Set "RK2=HKCU\Software\Classes\%%B\shell\open\command"
Call :Sub
Timeout -1
GoTo :EOF

:Sub    
For /F "Tokens=2*" %%A In ('Reg Query "%RK1%" /V Progid 2^>Nul') Do (
    For /F "Tokens=2*" %%C In ('Reg Query "%RK2%" /VE 2^>Nul') Do (
        For %%E In (%%D) Do If Exist "%%~E" Echo=Start "" "%%~E"))
GoTo :EOF

这只是部分答案,因为如果当前用户没有更改他们的默认浏览器,那么密钥/数据可能不存在。 (到那时,检查将变得更加复杂)。

【讨论】:

  • 这个特殊的脚本没有做任何事情,但它让我走上了正轨。
【解决方案2】:

在@Compo 的帮助下解决了这个问题

Dim oShell
Set oShell = CreateObject("WScript.Shell")

Dim strProgId
strProgId = oShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice\ProgID")
Dim strExe
strExe = oShell.RegRead("HKEY_CLASSES_ROOT\" & strProgId & "\shell\open\command\")
wscript.echo strExe

【讨论】:

  • 请记住 HKEY_CLASSES_ROOT 映射为 HKEY_LOCAL_MACHINE\SOFTWARE\Classes。我的示例使用了HKEY_CURRENT_USER\Software\Classes,因为它正在查看HKEY_CURRENT_USER 以获取其他数据。我建议您至少应该先检查HKCU,如果没有,请查看HKLM 键。
  • for /f tokens^=^2^ eol^=^"^ delims^=^" 用双引号字符解析从未见过的特定语法
  • 注册表子项 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations* 已添加到 Win 7 及更高版本,我假设。 @Isaac Hanson 你确定机器上总是存在“ProgID”键吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 2016-04-01
  • 2013-03-13
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
相关资源
最近更新 更多