![我必须使用 vb 脚本或 powershell 从控制面板打开程序的设置关联](https://linux22.com/image/1597123/%E6%88%91%E5%BF%85%E9%A1%BB%E4%BD%BF%E7%94%A8%20vb%20%E8%84%9A%E6%9C%AC%E6%88%96%20powershell%20%E4%BB%8E%E6%8E%A7%E5%88%B6%E9%9D%A2%E6%9D%BF%E6%89%93%E5%BC%80%E7%A8%8B%E5%BA%8F%E7%9A%84%E8%AE%BE%E7%BD%AE%E5%85%B3%E8%81%94.png)
我使用下面的脚本只是为了查看 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 打开的程序关联。