私はPython/wxPythonプログラムからアクセスできるように、ウィンドウのデフォルトのメディアプレーヤーパスを検出しようとしています。私の具体的な必要性は、すべてのメディアファイルのリストを作成し、プレーヤーを使用して再生することです。ウィンドウのデフォルトのメディアプレーヤーを検出する
3
A
答えて
2
上記のコメントに基づいて、これで別の方向に進むことにしたようです。あなたの質問は私には好奇心を抱かせました。だから私はとにかく狩りをしました。
ファイルの関連付けは、Windowsレジストリに格納されます。 Pythonを介してWindowsレジストリ情報にアクセスする方法は、_winregモジュール(バージョン2.0以降で使用可能)を使用することです。次のように現在のユーザーのために、個々のファイルの関連付け情報は、名前のサブキーに格納されます。特定のファイル形式のためにあなたが探している
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.wmv\UserChoices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mpeg\UserChoices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.avi\UserChoices
などなど。
import _winreg as wr
# Just picked three formats - feel free to substitute or extend as needed
videoFormats = ('.wmv', '.avi', '.mpeg')
#Results written to this list
userOpenPref = []
for i in videoFormats:
subkey = ("Software\\Microsoft\\Windows\\CurrentVersion" +
"\\Explorer\\FileExts\\" + i + "\\UserChoice")
explorer = wr.OpenKey(wr.HKEY_CURRENT_USER, subkey)
try:
i = 0
while 1:
# _winreg.EnumValue() returns a tuple:
# (subkey_name, subkey_value, subkey_type)
# For this key, these tuples would look like this:
# ('ProgID', '<default-program>.AssocFile.<file-type>', 1).
# We are interested only in the value at index 1 here
userOpenPref.append(wr.EnumValue(explorer, i)[1])
i += 1
except WindowsError:
print
explorer.Close()
print userOpenPref
出力::WMP11 =のWindows Media Player 11を持つ
[u'WMP11.AssocFile.WMV', u'WMP11.AssocFile.avi', u'WMP11.AssocFile.MPEG']
ここ
は、私はこの情報にアクセスし、それをリストとして保存するために書いた小さなスクリプトの例です希望しました。
出典:
関連する問題
- 1. cmdで再生しているメディアプレーヤーを検出する
- 2. ウィンドウのスクロールバーのクリックを検出する
- 3. 分割ウィンドウのサイズを検出する
- 4. ウィンドウのフォーカスがないウィンドウでキーを検出する
- 5. Angular2デフォルトの変更検出
- 6. ウィンドウ外にキーストロークを検出するC++
- 7. デフォルト位置検出
- 8. ウィンドウのデフォルトのメニューバー
- 9. メディアプレーヤーが動作しているかどうかを検出する方法
- 10. ウィンドウを開いたときの検出
- 11. ウィンドウのあるサービス内のナビゲーションボタンのタッチイベントを検出する
- 12. ウィンドウのメディアプレーヤーまたはモニターにテキストを表示
- 13. どのウィンドウをフォアグラウンドウィンドウとして検出するのですか?
- 14. 同じドメインの他のタブ/ウィンドウの存在を検出する
- 15. iPhoneのメディアプレーヤーをカスタマイズする
- 16. jQuery:その場でウィンドウの幅を検出する方法は?
- 17. Wpfは、別のウィンドウからウィンドウを閉じるときに検出します。
- 18. Azureサービスバスキューの重複検出ウィンドウ
- 19. プログラムでBlackberryのデフォルトのメディアプレーヤーを呼び出しますか?私が言ったように
- 20. バッチで別のウィンドウでキーストロークを検出する
- 21. ウィンドウ間通信のブラウザサポートを検出する
- 22. 複数のリンクされたCランタイムをウィンドウで検出する
- 23. ウィンドウ内の矢印キーを検出するUWP
- 24. wxwidgetsが別のウィンドウでマウスクリックを検出する
- 25. アプリケーション、ウィンドウ、タブの順番を検出する
- 26. CSSでブラウザのウィンドウ位置を検出する
- 27. ウィンドウのフォントサイズを検出する(100%、125%、150%)
- 28. ウィンドウの最後でマウスアップを検出する方法は?
- 29. pygtkウィンドウを残してマウスを検出
- 30. デフォルトのデバッグ形式を検出するコマンド
私のアドバイスは、システムの任意の内部の詳細を検出しようとするが、システムは何もしてファイルを「開く」にするために、 'os.system'を使用しないことです適切なアプリケーションと考えています。 – ulidtko
それは簡単でした。ありがとう:) – spitfire
問題は、パスにスペースがあるときに失敗することです。 – spitfire