我搜索了好几个小时,现在我在这个论坛上问。
如何控制Windows 10的系统卷设置?
我需要哪个Libary?
我正在使用Visual 2015,并想用C#编写一个。
该方案应能够:
我发现了一个类似的问题和答案,但答案是行不通的。
私有void (){
SendMessageW(new WindowInteropHelper(this).Handle, WM_APPCOMMAND, new WindowInteropHelper(this).Handle,
(IntPtr)APPCOMMAND_VOLUME_MUTE);
}它找不到"WindowInteropHelper“。但我执行:
使用系统;
使用System.Windows.Forms;
使用System.Runtime.InteropServices;
发布于 2016-08-03 14:10:01
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度。
我仍然在寻找一种获得当前系统卷的方法。
发布于 2016-02-24 09:07:57
你不能这么做。通用应用程序是沙箱化的,不能对系统进行全局修改。这包括系统卷。
发布于 2016-12-15 22:15:54
我相信有一种使用nircmd的方法。
首先下载nircmd并将其附加到项目:
http://www.nirsoft.net/utils/nircmd.html
然后,通过cmd调用它:
您想要的命令在nircmd网站中指定。
例如,要将卷更改为x%,请使用:
realativePath/nircmd.exe setsys卷x
https://stackoverflow.com/questions/35597458
复制相似问题