[英]Set System Volume Windows 10 in C#
我搜索了幾個小時,現在我在這個論壇中提問。
我需要哪個圖書館?
我正在使用Visual Basic 2015,並希望使用C#對Windows Universal App進行編程。
將Systemvolume設置為x%
將Systemvolume增加x
將系統體積減少x
獲取當前的Systemvolume
我找到了類似的“問答”,但“答案”確實起作用。
私人無效Mute(){
SendMessageW(new WindowInteropHelper(this).Handle, WM_APPCOMMAND, new WindowInteropHelper(this).Handle,
(IntPtr)APPCOMMAND_VOLUME_MUTE);
}
它找不到“ WindowInteropHelper”。 但是我實現了:
使用系統;
使用System.Windows.Forms;
使用System.Runtime.InteropServices;
你不能那樣做。 通用應用已被沙盒化,無法對系統進行全局修改。 這包括系統體積。
class VolumeChanger
{
private const byte VK_VOLUME_MUTE = 0xAD;
private const byte VK_VOLUME_DOWN = 0xAE;
private const byte VK_VOLUME_UP = 0xAF;
private const UInt32 KEYEVENTF_EXTENDEDKEY = 0x0001;
private const UInt32 KEYEVENTF_KEYUP = 0x0002;
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, UInt32 dwFlags, UInt32 dwExtraInfo);
[DllImport("user32.dll")]
static extern Byte MapVirtualKey(UInt32 uCode, UInt32 uMapType);
public static 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);
}
public static 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);
}
public static void Mute()
{
keybd_event(VK_VOLUME_MUTE, MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_VOLUME_MUTE, MapVirtualKey(VK_VOLUME_MUTE, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
}
使用此功能,您可以將系統音量靜音和增加或減少2度。
我仍在尋找一種獲取當前Systemvolume的方法。
我相信有一種使用nircmd的方法。
首先下載nircmd並將其附加到項目:
http://www.nirsoft.net/utils/nircmd.html
然后,通過cmd調用它:
您需要的命令在nircmd網站上指定。
例如,要將音量更改為x%,請使用:
realativePath / nircmd.exe setsysvolume x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.