コマンドラインからWindowsボリュームレベルにアクセスできるツールまたはスクリプトを探しています。理想的には、アプリケーションレベルを含むすべてのボリュームを取得および設定できるようになりますが、取得レベルとマスターレベルのみで十分です。 PowerShell
、WMI
、JavaScript
、.Net
、Voodoo、または蝶のどれを使用してもかまいません。 0%から100%の範囲にフィットするようにさらに処理できる数値が得られるだけのソリューションであれば十分です。
別の言い方をすれば、プロンプトパーツは、私が入力する必要があるブラックボックスです。
C:\> getvol master
50
あるいは
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
それをラッピングするための時間を費やさなければならないか、それを行うためのツールが自由に利用可能であれば、自分で何かを書く必要があるかどうかは気にしない。後者の場合、コアにいくつかのポインター/概念実証が必要になりますが、自分で問題を管理できます。また、この目的のためだけに新しい開発フレームワークをインストールしないようにしたいと思います( music2myear's と iglvzx's の両方の回答がbeforeこれらの要件を導入しました)。
「プラットフォーム」として、私は利用できます:
一般に、オープンソースのソリューションが非常に好まれます。クローズドソースツールは、フリーウェアであり、ソースが信頼できるものであれば問題ありません。商用ソリューションはありません。
nircmdc
があり、ボリュームの設定をサポートしていますが、取得はできません。AutoHotKey
およびWSH
ソリューションがありますが、a)これらも設定にのみ適しています。さらに悪いことに、b)SendKeys
または自動化を使用しますGUIを制御するためのマウスの動き。 GUIの自動化はオプションではありません。Freenodeの##windows
チャネルはこれまで通り役に立たず、Googleはハックや中途半端な回避策で溢れ、WinAPI呼び出しをWiccanの呪文から区別できません。
誰かが方法を知っていますか?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000
この質問は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マスターボリュームコントロール。
AutoHotkeyソリューションが必要ではないとおっしゃっていましたが、 AutoHotkey APIには探しているものが含まれていると思います。
GUIを作成したり、AutoHotkeyでホットキーを使用したりする必要はありません。 .ahk
スクリプトをコンパイルすることで、強力なコマンドラインユーティリティを作成できます。そうは言っても、stdout
を操作するための FileAppend コマンドを確認する必要があります。
マスターボリュームは、レジストリの場所に格納されています。
...\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}
たとえば、このREGファイルはマスターボリュームを100%に設定します。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\{6994ad04-93ef-11d0-a3cc-00a0c9223196}\##?#HDAUDIO#FUNC_01&VEN_8384&DEV_7680&SUBSYS_83847680&REV_1034#4&31e60982&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}\20000]
@=hex(ffff1003):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00
キー名は異なる場合があります。変更を有効にするには、再起動する必要があります。
Properties
のregedit
または{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}
キーを編集または開くことができない場合があります。必要なアクセス許可がありますが、次のようなエラーが表示される場合があります。
[Window Title]
Error Opening Key
[Content]
{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc} cannot be opened.
An error is preventing this key from being opened.
[OK]
これは、キー名が長すぎるためです。長いキー名を一時的に1文字に変更してから、再度名前を変更する必要があります。