First install the python Comtypes package either on
using compype to install packages
or
download https://pypi.python.org/pypi/comtypes and then extract the download folder. Find setup.py in the extracted folder. Open cmd, go to setup.py path and then run the python setup.py install command
Now just run the code.py file and you can adjust the volume by changing the first argument to the SetMasterVolumeLevel (-25, None) function. The first argument should be between -65 and 0. I tried this code on Windows 8, I hope it will work on Windows 7.
In the last lines of code, find volume.SetMasterVolumeLevel (-25, None) and increase the PC size
Code.py
from comtypes import * import comtypes.client from ctypes import POINTER from ctypes.wintypes import DWORD, BOOL MMDeviceApiLib = \ GUID('{2FDAAFA3-7523-4F66-9957-9D5E7FE698F6}') IID_IMMDevice = \ GUID('{D666063F-1587-4E43-81F1-B948E807363F}') IID_IMMDeviceEnumerator = \ GUID('{A95664D2-9614-4F35-A746-DE8DB63617E6}') CLSID_MMDeviceEnumerator = \ GUID('{BCDE0395-E52F-467C-8E3D-C4579291692E}') IID_IMMDeviceCollection = \ GUID('{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}') IID_IAudioEndpointVolume = \ GUID('{5CDF2C82-841E-4546-9722-0CF74078229A}') class IMMDeviceCollection(IUnknown): _iid_ = GUID('{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}') pass class IAudioEndpointVolume(IUnknown): _iid_ = GUID('{5CDF2C82-841E-4546-9722-0CF74078229A}') _methods_ = [ STDMETHOD(HRESULT, 'RegisterControlChangeNotify', []), STDMETHOD(HRESULT, 'UnregisterControlChangeNotify', []), STDMETHOD(HRESULT, 'GetChannelCount', []), COMMETHOD([], HRESULT, 'SetMasterVolumeLevel', (['in'], c_float, 'fLevelDB'), (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'SetMasterVolumeLevelScalar', (['in'], c_float, 'fLevelDB'), (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'GetMasterVolumeLevel', (['out','retval'], POINTER(c_float), 'pfLevelDB') ), COMMETHOD([], HRESULT, 'GetMasterVolumeLevelScalar', (['out','retval'], POINTER(c_float), 'pfLevelDB') ), COMMETHOD([], HRESULT, 'SetChannelVolumeLevel', (['in'], DWORD, 'nChannel'), (['in'], c_float, 'fLevelDB'), (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'SetChannelVolumeLevelScalar', (['in'], DWORD, 'nChannel'), (['in'], c_float, 'fLevelDB'), (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'GetChannelVolumeLevel', (['in'], DWORD, 'nChannel'), (['out','retval'], POINTER(c_float), 'pfLevelDB') ), COMMETHOD([], HRESULT, 'GetChannelVolumeLevelScalar', (['in'], DWORD, 'nChannel'), (['out','retval'], POINTER(c_float), 'pfLevelDB') ), COMMETHOD([], HRESULT, 'SetMute', (['in'], BOOL, 'bMute'), (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'GetMute', (['out','retval'], POINTER(BOOL), 'pbMute') ), COMMETHOD([], HRESULT, 'GetVolumeStepInfo', (['out','retval'], POINTER(c_float), 'pnStep'), (['out','retval'], POINTER(c_float), 'pnStepCount'), ), COMMETHOD([], HRESULT, 'VolumeStepUp', (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'VolumeStepDown', (['in'], POINTER(GUID), 'pguidEventContext') ), COMMETHOD([], HRESULT, 'QueryHardwareSupport', (['out','retval'], POINTER(DWORD), 'pdwHardwareSupportMask') ), COMMETHOD([], HRESULT, 'GetVolumeRange', (['out','retval'], POINTER(c_float), 'pfMin'), (['out','retval'], POINTER(c_float), 'pfMax'), (['out','retval'], POINTER(c_float), 'pfIncr') ), ] class IMMDevice(IUnknown): _iid_ = GUID('{D666063F-1587-4E43-81F1-B948E807363F}') _methods_ = [ COMMETHOD([], HRESULT, 'Activate', (['in'], POINTER(GUID), 'iid'), (['in'], DWORD, 'dwClsCtx'), (['in'], POINTER(DWORD), 'pActivationParans'), (['out','retval'], POINTER(POINTER(IAudioEndpointVolume)), 'ppInterface') ), STDMETHOD(HRESULT, 'OpenPropertyStore', []), STDMETHOD(HRESULT, 'GetId', []), STDMETHOD(HRESULT, 'GetState', []) ] pass class IMMDeviceEnumerator(comtypes.IUnknown): _iid_ = GUID('{A95664D2-9614-4F35-A746-DE8DB63617E6}') _methods_ = [ COMMETHOD([], HRESULT, 'EnumAudioEndpoints', (['in'], DWORD, 'dataFlow'), (['in'], DWORD, 'dwStateMask'), (['out','retval'], POINTER(POINTER(IMMDeviceCollection)), 'ppDevices') ), COMMETHOD([], HRESULT, 'GetDefaultAudioEndpoint', (['in'], DWORD, 'dataFlow'), (['in'], DWORD, 'role'), (['out','retval'], POINTER(POINTER(IMMDevice)), 'ppDevices') ) ] enumerator = comtypes.CoCreateInstance( CLSID_MMDeviceEnumerator, IMMDeviceEnumerator, comtypes.CLSCTX_INPROC_SERVER ) print enumerator endpoint = enumerator.GetDefaultAudioEndpoint( 0, 1 ) print endpoint volume = endpoint.Activate( IID_IAudioEndpointVolume, comtypes.CLSCTX_INPROC_SERVER, None ) print volume print volume.GetMasterVolumeLevel() print volume.GetVolumeRange()