如何从 Windows 7 上的命令行访问音量级别?

pet*_*eth 17 audio windows-7 script cygwin command-line

我需要的

我正在寻找允许我从命令行访问 Windows 音量级别的工具或脚本。理想情况下,它允许我获取和设置所有卷,包括应用程序级别,但我只接受获取,并且只满足主级别。我不介意它使用PowerShellWMIJavaScript.Net、 Voodoo 或蝴蝶。任何只会给我一个数字的解决方案,我可以进一步处理以适应从 0% 到 100% 的范围。

换句话说,提示部分是我需要填充的黑匣子:

C:\> getvol master
50
Run Code Online (Sandbox Code Playgroud)

甚至

C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name    Value
Volume  0xDEADBEEF
Run Code Online (Sandbox Code Playgroud)

我不介意我是否必须花一些时间来包装它,或者如果可以免费获得这样做的工具,我什至自己编写一些东西。在后一种情况下,我需要一些核心的指针/概念证明,但我可以自己管理这些问题。此外,我想避免为此目的安装新的开发框架(请注意,我介绍这些要求之前music2myeariglvzx 的答案都已给出)。

作为“平台”,我有:

  • Windows 7 家庭高级版附带的任何内容
  • Cygwin 附带的任何东西
  • 珀尔
  • Python
  • 红宝石

通常,开源解决方案是非常受欢迎的。闭源工具是可以的,只要它们是免费软件并且来源是可信的。商业解决方案是行不通的。

我不需要的东西

  • 有几个类似的 问题主要涉及设置音量。最重要的是,我需要获取音量,而不是设置。
  • nircmdc,支持设置音量,但不支持。
  • 我的注册表中有一个键 [1],当我通过 GUI 混合器调整音量时,该键的值会发生可预测的变化,但我猜想从该键读取很容易因硬件更改或系统升级而损坏。除非我可以依靠合理的面向未来的解决方案,否则我不能使用它。
  • AutoHotKeyWSH设置在网络上的大规模应用解决方案,但)他们也只用于设置好,更糟的是,B),他们使用SendKeys或自动鼠标移动来控制GUI。自动化 GUI 不是一种选择。

##windowsfreenode 上的频道一如既往地无用,谷歌充斥着黑客和半生不熟的解决方法,我无法从 Wiccan 咒语中分辨出 WinAPI 调用。

有谁知道一种方法?


  1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000

mus*_*ear 5

在 StackOverflow 上提出并回答了这个问题:https ://stackoverflow.com/questions/4640106/how-to-get-current-volume-of-system-sound-device-in-windows-7

答案:https : //stackoverflow.com/a/4640225/704977

您正在寻找 EndpointVolume API。这是 Windows Vista 中发布的新音频 API 的一部分,可用于获取或设置主音量。
... CodeProject 上有一个完整的托管包装库:Vista Core Audio API Master Volume Control。

  • 那个似乎是面向 C# 的。如果您正在寻找 C++'ish 选项,请参阅 http://stackoverflow.com/a/21056089/32453 (2认同)

归档时间:

查看次数:

46224 次

最近记录:

10 年,2 月 前