放弃 abarnert 在Python 中的建议:更改 Windows 7 主卷
我正在尝试编写一个 python 脚本来控制 Windows 7 中的主音量
我知道在 C++ 中可以这样做:
const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
mmde = CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&pEnumerator);
mmd = mmde.GetDefaultAudioEndpoint(eRender, eMultimedia);
mgr = mmd.Activate(IID_IAudioSessionManager);
sav = mgr.GetSimpleAudioVolume(None, True);
sav.SetMasterVolume(0.5);
我正在尝试使用pywin32在 python 中获得该功能,但我发现自己卡住了。我到目前为止的代码是:
import pythoncom
CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator)
IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator)
mmde = pythoncom.CoCreateInstance(CLSID_MMDeviceEnumerator, None, CLSCTX_ALL, IID_IMMDeviceEnumerator)
mmd = mmde.GetDefaultAudioEndpoint(eRender, eMultimedia)
mgr = mmd.Activate(IID_IAudioSessionManager)
sav = mgr.GetSimpleAudioVolume(None, True)
sav.SetMasterVolume(0.5)
CoCreateInstance 想要 MMDeviceEnumerator 的类 ID (CLSID),但似乎没有像 __uuidof() 这样的函数来获取类 ID。(反正我也找不到。)
有没有人有任何想法/建议?我是 COM/OLE 编程和 pywin32 的新手,感觉有点失落。