отказ от предложения 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);
Я пытаюсь получить эту функциональность в python с помощью pywin32, но застрял. Код, который у меня есть до сих пор:
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 хочет получить идентификатор класса (CLSID) MMDeviceEnumerator, но, похоже, не имеет какой-либо функции, такой как __uuidof (), для использования для получения идентификатора класса. (Во всяком случае, я не мог найти.)
Есть ли у кого-нибудь идеи / предложения? Я новичок в программировании COM / OLE и pywin32 и чувствую себя немного потерянным.