henji243
@henji243

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

waveOutGetVolume関数の呼び出し方について

解決したいこと

win32apiのwaveOutGetVolume関数をPythonから呼び出そうとしているのですがデバイス識別子ってどうやって取得するのでしょうか。

ドキュメントを見てみるとデバイス識別子を指定するそうなのですが、デバイス識別子の取得方法がわかりません。

現在のコード

import ctypes
from ctypes import windll


def get_volume() -> int:
    vol = ctypes.c_long()  # この変数のポインタを指定して関数を実行
    windll.winmm.waveOutGetVolume(ctypes.c_wchar_p("デバイス識別子?"), ctypes.pointer(vol))
    return vol.value

print(get_volume())  # 結果は0

自分で試したこと

デバイスマネージャーからハードウェアIDや表示名を試してみたのですが、実行しても0しか出力されませんでした。
image.png
デバイス識別子の取得方法と、指定方法はctypes.c_wchar_p()でいいのか教えてください。(ちなみにC言語を触った経験はないです)

0

1Answer

Your answer might help someone💌