25

すでにミュートされていない限り、最初にサウンドをミュートし、最後にミュートを解除するPowerShellコマンドレットを作成しようとしています(最初からミュートされていない場合のみ)。使用できるPoweShellまたはWMIオブジェクトが見つかりませんでした。auxGetVolumeauxSetVolumeなどのWin32関数をいじっていましたが、完全に機能させることができませんでした(IntPtrから値を読み取る方法は?)。

V2CTP2を使用しています。アイデアはありますか?

ありがとう!

4

11 に答える 11

22

ps1 powershell スクリプトで次のコマンドを使用します。

$obj = new-object -com wscript.shell 
$obj.SendKeys([char]173)
于 2012-09-13T00:12:58.590 に答える
7

音量をすばやく簡単に調整する方法はないようです。C++ の経験がある場合は、このブログ投稿で何かを行うことができます。Larry Osterman は、プラットフォーム API から IAudioEndpointVolume インターフェイスを呼び出す方法を説明しています (Vista の場合、 XP は、私がいくつかの検索で見つけたものよりも難しいかもしれません)。

V2 では、(Add-Type を介して) インライン コードをコンパイルできるため、オプションになる可能性があります。

于 2008-11-01T19:25:32.010 に答える
7

Windows オーディオ サービスを管理するだけで、別の方法で猫の皮を剥ぐことができます。ミュートするには停止し、ミュートを解除するには開始します。

于 2008-11-01T05:29:05.910 に答える
2

vbscriptの解決策:

Set WshShell = CreateObject("WScript.Shell")
For i = 0 To 50
  WshShell.SendKeys(chr(174))
  WScript.Sleep 100
Next

キーを押すと、毎回音量が2ずつ下がります。

于 2013-01-31T00:43:05.310 に答える
2

PowerShellでこれを行う方法は見つかりませんでしたが、次のコマンドを実行することでトリックを実行するNirCmdというコマンドラインユーティリティがあります。

C:\ utils \ nircmd.exe mutesysvolume 2

NirCmdはここから無料で入手できます: http ://www.nirsoft.net/utils/nircmd.html

于 2009-11-03T23:33:19.223 に答える