Попробуйте так (не проверялось):
читать дальше »
Код:

Option Explicit
Dim objDictionary
Dim objFSO
Dim objWshShell
Dim strPath2Script
Dim strPath2DefSound
Dim elem
Dim objSWbemObjectEx
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
With objFSO
strPath2Script = .GetParentFolderName(WScript.ScriptFullName)
objDictionary.Add 0, .BuildPath(strPath2Script, "Icon0.ico")
objDictionary.Add 1, .BuildPath(strPath2Script, "Icon1.ico")
For Each elem In objDictionary.Items
If Not .FileExists(elem) Then
WScript.Echo "Icon file [" & elem & "] not found"
WScript.Quit 1
End If
Next
For Each objSWbemObjectEx In WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").InstancesOf("Win32_OperatingSystem")
Select Case objSWbemObjectEx.Version
Case "6.0.6000", "6.0.6001", "6.0.6002", "6.1.7600", "6.1.7601", "6.2.9200" ' http://en.wikipedia.org/wiki/Windows_NT#Releases
Select Case objSWbemObjectEx.OSArchitecture
Case "32-bit" ' x86
strPath2DefSound = .BuildPath(strPath2Script, "DefSound-x32.exe")
Case "64-bit" ' x64
strPath2DefSound = .BuildPath(strPath2Script, "DefSound-x64.exe")
End Select
Case Else
WScript.Echo "Unsupported OS version:", objSWbemObjectEx.Version
WScript.Quit 2
End Select
Exit For
Next
If .FileExists(strPath2DefSound) Then
If WScript.Arguments.Count = 1 Then
Select Case WScript.Arguments.Item(0)
Case "0", "1"
objWshShell.Run """" & strPath2DefSound & """ " & WScript.Arguments.Item(0), 0, True
CreateShortcutOnDesktop Abs(Not CBool(WScript.Arguments.Item(0)))
Case Else
CreateShortcutOnDesktop 0
End Select
Else
CreateShortcutOnDesktop 0
End If
Else
WScript.Echo "Can't find [" & strPath2DefSound & "]"
WScript.Quit 3
End If
End With
Set objWshShell = Nothing
Set objFSO = Nothing
Set objDictionary = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub CreateShortcutOnDesktop(lngArgument)
With objWshShell.CreateShortcut(objFSO.BuildPath(objWshShell.SpecialFolders("Desktop"), objFSO.GetBaseName(WScript.ScriptName) & ".lnk"))
.TargetPath = WScript.ScriptFullName
.WorkingDirectory = strPath2Script
.Arguments = CStr(lngArgument)
.IconLocation = objDictionary.Item(lngArgument)
.WindowStyle = 0
.Description = "Shortcut to quick change default sound"
'.Hotkey = "CTRL+SHIFT+S"
.Save
End With
End Sub
'=============================================================================
Поместите рядом с этим файлом файлы «DefSound-x32.exe», «DefSound-x64.exe» (работа с утилитой основана на этой статье:
EreTIk's Box » Утилиты » DefSound: установка аудио устройства по умолчанию), а также файлы иконок «Icon0.ico», «Icon1.ico». При желании можете раскомментировать строку,
задающую горячую клавишу для создаваемого ярлыка, равно как и поменять там саму горячую клавишу.