Как изменить основной объем Win7 с помощью скрипта? - PullRequest
6 голосов
/ 02 мая 2011

Мне нужен скрипт для Windows 7, чтобы я мог набрать «vol 50», и громкость изменилась на 50%, «vol 0» и он отключился и т. Д.

Это должно быть действительно просто, верно?

По-видимому, это не так, и я потратил впустую более часа, разбираясь с различными длинными объяснениями скучных вещей, где люди объясняют различия между Win 7 и Win XP или между мастер-томами и другими томами, а также различными другими вещами, которые не ' не говори мне, что мне нужно.

Я нашел эту страницу: http://msdn.microsoft.com/en-us/library/ms679141.aspx

Поэтому я попытался создать тестовый скрипт set_vol_50.vbs, который выглядит следующим образом:

SetMasterVolume 0.5 , NULL


Это приводит к ошибке:

Script:   <path>\set_vol_50.vbs
Line:     1
Char:     1
Error:    Type mismatch: 'SetMasterVolume'
Code:     800A000D
Source:   Microsoft VBScript runtime error

Что не особенно полезно (и ни один не пытается гуглить по этому вопросу).
Нужно ли как-то приводить 0.5 к плавающей точке?
Является ли NULL неправильной вещью для второго аргумента?


Я не женат на VBScript для этого - все, что я хочу сделать, это глобально установить громкость основного звука для Windows 7 - как только конечный результат будет простым исполняемым файлом, который может принимать процент, я буду счастлив.

Как мне это сделать?

1 Ответ

5 голосов
/ 02 мая 2011

Кто-то указал мне на этот бесплатный инструмент: http://www.nirsoft.net/utils/nircmd.html

Что в конечном итоге позволяет мне создать командный файл следующим образом:

set /a v = 65535 * %1 / 100
C:\path\to\nircmd.exe setsysvolume %v%

Что решает проблему, но немного уродливо.

Если кто-то может предложить лучшее решение, я с радостью приму его по этому поводу, но, по крайней мере, у меня есть кое-что, что работает.

...