我使用下面的脚本只是为了查看 Internet Explorer 的默认设置。
Option Explicit
Dim oShell, sWinDir
Set oShell = WScript.CreateObject("WScript.Shell")
sWinDir = oShell.ExpandEnvironmentStrings("%WINDIR%")
oShell.Run sWinDir & "\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=internet%20explorer"
Set oShell = Nothing
WScript.Quit
这对于 Internet Explorer 来说很好,但当我尝试使用 Firefox 或 Outlook 时,它没有显示任何内容。即使窗口打开了,它也没有反映任何内容,就好像名称不存在一样。请提出建议
Option Explicit
Dim oShell, sWinDir
Set oShell = WScript.CreateObject("WScript.Shell")
sWinDir = oShell.ExpandEnvironmentStrings("%WINDIR%")
oShell.Run sWinDir & "\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=firefox"
Set oShell = Nothing
WScript.Quit
在 powershell 中我使用下面的脚本,这对 google chrome 和 internet explorer 也很好用,但是当我必须打开其他程序(如工作 firefox excel)时它将不起作用。
function Set-IEAsDefaultBrowser {
Add-Type -AssemblyName 'System.Windows.Forms'
Start-Process $env:windir\system32\control.exe -ArgumentList '/name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=Outlook'
Sleep 2
}
Set-IEAsDefaultBrowser
所附图片显示了我尝试使用 Outlook 或 Word 时的样子。
答案1
我自己已经解决了。
实际上我必须写下注册的应用程序名称,之前我使用像 word 这样的名称,但它必须是 Word.Application.16。
从下面的键中找到已注册的应用程序名称。
HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications
答案2
如果我这样使用它,
Set ob = CreateObject("WScript.Shell")
sWinDir = ob.ExpandEnvironmentStrings("%WINDIR%")
ob.Run sWinDir & "\system32\control.exe /name Microsoft.DefaultPrograms /page pageDefaultProgram\pageAdvancedSettings?pszAppName=firefox"
将文件类型或协议与 Firefox 打开的程序关联。