Dim Bert Bert = SetMasterVolume( 0.5 , NULL )
Call SetMasterVolume( 0.5 , NULL )
nircmd changesysvolume -65535 nircmd changesysvolume 65535 * <vol>/100
set /a v = 65535 * %1 / 100 C:\path\to\nircmd.exe changesysvolume -65535 C:\path\to\nircmd.exe changesysvolume %v%
It can set volume - use setsysvolume.
And its 0-65535 because sound volumes in windows are 16 bit integers.
Sometimes. Maybe. :P
My point was more the other direction though - we probably don't need sixty five thousand levels.
It could either use 1 byte instead of 2, and then just have a direct 1:1 mapping of percentage to volume, or - in case there is some obscure software that requires it - make it a 2-byte float so it's no effort for programmers/users to translate, because it's still a percentage, but you've still got that precision if necessary.