第二种方式 可以设置音量增加或者减小 但是无法统当前音量 没找到对应的API
/// <summary> /// 改变系统音量大小,增加 /// </summary> public void VolumeUp() { keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_VOLUME_UP, MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } ///<summary> /// 改变系统音量大小,减小 /// </summary> public void VolumeDown() { keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY, 0); keybd_event(VK_VOLUME_DOWN, MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); }最后从网上找到了另一种方式 通过CoreAudioApi 通过测试确实能用。
CoreAudioApi.MMDeviceEnumerator devices = new MMDeviceEnumerator(); MMDevice device = devices.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); device.AudioEndpointVolume.MasterVolumeLevel = trackBar1.Value;//(直接设置音量 也可以调用方法设置音量增加减少) trackBar1.Value = (int)device.AudioEndpointVolume.MasterVolumeLevel;//(获取当前音量并且通过trackBar1显示) 希望各位提供自己更好的解决方式。