我需要能够启动默认的Windows浏览器,而不指定网址(应该打开主页)。
解决方案最好不要求编译二进制文件(例如.bat,.vbs等)。
它也适用于Win7 +到Win10,无需安装任何软件,也没有管理员权限。
我见过指定网址的解决方案,但这对我不起作用。这可能吗?
谢谢!
答案Batch - Default Browser?不是重复的,因为该答案为您提供了打开html文件的默认应用程序,而不是URL处理的默认浏览器。
答案 0 :(得分: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
这只是一个部分答案,因为如果当前用户没有更改其默认浏览器,则键/数据可能不存在。 (此时检查将更加复杂)。
答案 1 :(得分:0)
您可以尝试此解决方案from here:
@echo off
rem look in the HKEY_CLASSES_ROOT\htmlfile\shell\open\command registry for the default browser
for /f "tokens=*" %%a in ('REG QUERY HKEY_CLASSES_ROOT\htmlfile\shell\open\command /ve ^| FIND /i "REG_SZ"') do (
set "input=%%a"
)
setlocal enableDelayedExpansion
rem parse the input field looking for the second token
for /f tokens^=^2^ eol^=^"^ delims^=^" %%a in ("!input!") do set "browser=%%a"
echo "%browser%"
Start "Default Browser" "%browser%"
pause>nul
编辑:28/03/2017 @ 01:55
试试这段代码:
@echo off
for /f "tokens=3 delims= " %%a in (
'REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice" ^| FIND /i "ProgId"'
) Do (
set "input=%%a"
)
SET Browser=%input:~0,-4%.exe
echo "%Browser%"
Start "Default Browser" "%Browser%" & pause & exit
答案 2 :(得分:0)
在@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