Unity 调用user32.dl调节系统音量
[DllImportAttribute("user32.dll", EntryPoint = "keybd_event")]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
[DllImportAttribute("user32.dll", EntryPoint = "MapVirtualKeyW")]
public static extern int MapVirtualKey(uint uCode, uint uMapType);
private const int VK_VOLUME_MUTE = 173;
private const int VK_VOLUME_DOWN = 174;
private const int VK_VOLUME_UP = 175;
private const int KEYEVENTF_EXTENDEDKEY =1;
private const int KEYEVENTF_KEYUP =2;
public void SystemVolumeUp()
{
keybd_event(VK_VOLUME_UP, (byte)MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_VOLUME_UP, (byte)MapVirtualKey(VK_VOLUME_UP, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
public void SystemVolumeDown()
{
keybd_event(VK_VOLUME_DOWN, (byte)MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_VOLUME_DOWN, (byte)MapVirtualKey(VK_VOLUME_DOWN, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
public void SystemMute()
{
keybd_event(VK_VOLUME_MUTE, (byte)MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_VOLUME_MUTE, (byte)MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}