gpt4 book ai didi

c# - 在 C# 中设置系统卷 Windows 10

转载 作者:行者123 更新时间:2023-12-03 02:35:04 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to programmatically set the system volume?

(6 个回答)


2年前关闭。




我搜索了几个小时,现在我在这个论坛上提问。

如何控制 Windows 10 的系统音量设置?

我需要哪个库?

我正在使用 Visual Basic 2015 并想用 C# 编写一个 Windows 通用应用程序。

该程序应该能够:

  • 将 Systemvolume 设置为 x%
  • 将 Systemvolume 增加 x
  • 将 Systemvolume 减小 x
  • 获取当前系统卷

  • 我发现了一个类似的问题和答案,但答案不起作用。

    私有(private)无效静音()
    {
            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);
    }
    }

    使用它,您可以静音,并将 Systemvolume 增加或减少 2 度。

    我仍在寻找获取当前 Systemvolume 的方法。

    关于c# - 在 C# 中设置系统卷 Windows 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35597458/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com