簡體   English   中英

在C#中設置Windows 10的系統卷

[英]Set System Volume Windows 10 in C#

我搜索了幾個小時,現在我在這個論壇中提問。

如何控制Windows 10的系統音量設置?

我需要哪個圖書館?

我正在使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM