因为自己写的小程序需要在工作时间把本本静音、切换IP的操作,查了win API切换静音是调用同一个函数,无法判断系统是否处在静音的状态。而且旧的API代码对Vista/win7支持不好,这里提供两种解决方案(至于判断系统是否静音尚缺中文资料,故撰写此文以供需要的朋友参考),一种是旧的,下面先贴的代码是大家基本上都能找到的:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; //CoreAudioApi支持最新的Vista/Win7作業系統,下麵的代碼可能是較早的API版本,不推薦使用 namespace SwitchIP { class VolumeControl { //调用该函数的窗体 public Form myForm; [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, uint lParam); const uint WM_APPCOMMAND = 0x319; const uint APPCOMMAND_VOLUME_UP = 0x0a; const uint APPCOMMAND_VOLUME_DOWN = 0x09; const uint APPCOMMAND_VOLUME_MUTE = 0x08;