Windows 7のコマンドラインからボリュームレベルにアクセスするにはどうすればよいですか?


17

必要なもの

コマンドラインからWindowsボリュームレベルにアクセスできるツールまたはスクリプトを探しています。理想的には、アプリケーションレベルを含むすべてのボリュームを取得および設定できるようになりますが、取得するのはマスターレベルのみで済ませることができます。それは使用している場合、私は気にしないPowerShellWMIJavaScript.Net、ブードゥー、または蝶。0%から100%の範囲に収まるようにさらに処理できる数を提供するだけの解決策はすべて行います。

別の言い方をすれば、プロンプトパーツは、入力する必要があるブラックボックスです。

C:\> getvol master
50

あるいは

C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name    Value
Volume  0xDEADBEEF

それを包むのに少し時間を費やしたり、そうするためのツールが自由に利用できる場合は自分で何かを書いたりする必要があるかどうかは気にしません。後者の場合、コアのためのポインター/概念実証が必要になりますが、自分でクラフを管理できます。また、私はちょうど(両方のことに注意してください、この目的のために、新たな開発フレームワークをインストールしないようしたいmusic2myearさんiglvzxの答えが与えられた前に、私は、これらの要件を導入しました)。

「プラットフォーム」として、私は利用可能です:

  • Windows 7 Home Premiumに付属しているもの
  • Cygwinに付属するもの
  • Perl
  • Python
  • ルビー

一般的に、オープンソースのソリューションが非常に好まれます。クローズドソースツールは、フリーウェアであり、ソースが信頼できるものであれば問題ありません。商用ソリューションは不要です。

必要ないもの

  • 主に音量の設定を扱う同様の 質問がいくつかあります。何よりも、設定するのではなくボリュームを取得する必要があります。
  • あるnircmdcボリュームの設定をサポートしている、が、得ていません。
  • レジストリにキー[1]があり、GUIミキサーでボリュームを調整すると予測可能な値に変化しますが、そのキーからの読み取りはハードウェアの変更やシステムのアップグレードで破損する傾向があると思います。合理的に将来性があるソリューションに頼ることができない限り、それを使用することはできません。
  • Web上にボリュームを設定するためのソリューションはAutoHotKeyありWSHますが、a)それらも設定に適しているだけでなく、b)SendKeysGUIを制御するためにマウスの動きを使用または自動化しています。GUIの自動化はオプションではありません。

##windowsfreenode のチャネルは相変わらず役に立たず、Googleはハッキングや中途半端な回避策であふれており、Wiccanの呪文からWinAPI呼び出しを伝えることはできません。

誰かが方法を知っていますか?


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



私の答えを広げる必要がありますか?あなたはプログラミングの経験があるようであるので、私はあなたがもっと必要であると確信していませんでした。AutoHotkeyを使用して簡単に目標を達成する方法の例を提供できます。
iglvzx

私はそれは非常に良い提案だと思います、再び感謝しますが、AHKは一度私を噛み、それ以来私は恥ずかしがり屋です。本格的なソリューションであっても、おそらく使用しないでしょう。しかし、将来の読者/より多くの賛成票のためにそれを拡大することを妨げるものは何もありません。:)
ペス

1
(reg。が私のボックスには存在しないように思えるので、...それは確かに不安定かもしれません)。こちらの私のC ++の回答もご覧ください:stackoverflow.com/a/21056089/32453
rogerdpack 14年

回答:


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#に触れたことがありません。自分でコーディングする必要がある場合、無料で利用できるコンパイラはありますか?
ペチ

最悪の場合、あなたは無料で、Visual StudioのC#Expressを、ダウンロードする必要があります:microsoft.com/visualstudio/en-us/products/2010-editions/...
music2myear

この特定の答えは、あなたの質問の解決策を探しているときにのみ見つかりました。コンパイル済みのバイナリが既に公開されているかどうかを確認するためのさらなる調査は行っていません。
music2myear

このGoogle検索には、いくつかの約束があるようです:google.com/search
q

2
それはC#指向のようです。C ++ 'ishオプションを探している場合は、stackoverflow.com
a / 21056089/32453

4

AutoHotkeyソリューションは必要ないと言っていましたが、AutoHotkey APIには探しているものがあると思います。

GUIを作成したり、AutoHotkeyでホットキーを使用したりする必要はありません。.ahkスクリプトをコンパイルして、強力なコマンドラインユーティリティを作成できます。そうは言っても、を使用する場合はFileAppendコマンドを確認する必要がありますstdout


gist.github.com/rdp/8363141(それのためのまっすぐなコンソールアプリケーションをより簡単かもしれないが/簡単に、ここでは他のコメントを参照してください):ここではそれをしない一つだ
rogerdpack

0

マスターボリュームはレジストリの場所に保存されます。

...\#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{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}でキーをregedit。必要なアクセス許可がありますが、次のようなエラーが表示される場合があります。

[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文字に変更してから、元の名前に戻す必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.