2009-07-07 22 views
1

私のマシンには、2つのオーディオ入力があります。私はゲームに使用するマイクと、ギター用のラインです。 1つを使用する場合は、他のものがヒス/静電気を除去するためにミュートされていることが重要です。そのため、ミュートされたものを切り替える小さなスクリプトを作成したいと考えています(トレイアイコンをクリックして入力デバイスに切り替えるのはかなり不便です)ミュート解除)。Windows XP - プログラムでPythonで音声をミュート/ミュート解除

私は多分、私がpywin32でこれを行うことができると思ったが、everything私はfindではなく、入力よりも出力ボリュームを設定する特定見えた可能性があり、私もどこより良い情報を探すために知っておくのwin32と十分慣れていませんよ。

誰かが正しい方向に向いていますか?

答えて

2

私は同様の問題があり、Windows APIを使って私が望むことをする方法を理解できませんでした。私はAutoItでGUIを自動化するだけでした。私はそれが最も速く、最も簡単な解決策(「ハッキー」なのだが)になると思う。今日、私はansweredとして、Python内からAutoITを使用することができます。

+0

私はWindows APIに入り込もうとしましたが、残念ながらそれは不可解でした。私は私のAutoItソリューションに満足しています。誰かが興味があれば、スクリプトはhttp://bitbucket.org/kiv/scripts/src/tip/muteit.au3にあります – Kiv

4

免責事項:は、私は、任意の手段によって、Windowsプログラミングの第一人者ないんだけど...しかし、ここで私の最高の推測pywin32 FAQパー

です:

どのように私が露出を使用してくださいxyzを行うWin32関数?一般的に

は、トリックは、言語に関係なく、 は、Python/PyWin32の質問 全くそれを考慮しないように、しかし マニュアルまたはあなたの 問題の例を検索するためです。 これにより、 の拡張機能を使用して同じ操作を実行するために必要な情報が表示されます( )。付属の ドキュメントでは、 の引数と戻り値の型を教えてくれるので、 を Pythonの正しい方法で簡単に見つけることができます。

「エンドポイントデバイス」のボリューム(サウンドカード/ライン入力)を制御するようなサウンドです。その方向にAPI referenceがあります。

Hereは、以前のものがあなたが探していたものでなかった場合、ウィンドウ内のオーディオデバイスを制御するのにやや広範な見方をしています。

Hereは、あなたがC#でやろうとしていることをした人のブログエントリです(私はPythonを指定したことを知っていますが、コードから正しいAPI呼び出しを抽出できるかもしれません)。

幸運を祈る!そして、もしあなたが作業コードを取得したら、私はそれを見ることに興味があります。

1

​​- pywin32は、既に含まれているAPIのいずれかを使用している場合は良いですが、健全なAPIが不足していると思います。 tgrayによって提供されるC#リンクのサンプルコードと一緒に、​​とwinmm.dllを使用するか、代わりにSWIGを使用してwinmm.dllをラップします。 API呼び出しで使用されるMIXERCONTROLDETAILSなどの型のC構造体マッピング型を​​にビルドする必要がないので、これは早くても問題ありません。

0

tgrayが正しい方向にあなたを指摘しているようだが、あなたが対処する権利のWin32 APIを見つけると、あなたはオプションのカップルを持っている:

1)... pywin32を使用してみてくださいが、それはあなたが必要とする機能を包むかもしれません。したがって、必要な機能を得るためにCOMを使用する必要がある場合にのみ、これを行うことができます。

2)ctypesを使用してください。一般的には、ctypeを使ってCの機能性を包括するのはかなり簡単です。

3)C#のサンプルが必要なものであれば、かなり簡単にIronPythonに変換できるはずです。 C APIを使用するよりも簡単かもしれません。もちろん、YMMV。

関連する問題