zoukankan      html  css  js  c++  java
  • C#设置Windows系统音量 试例二

     1 using System;
     2 using System.Runtime.InteropServices;
     3 using System.Diagnostics;
     4 
     5 namespace GavinTung
     6 {
     7     class SystemMultimediaController
     8     {
     9         /*
    10          * 弹出系统音量控制器
    11          * */
    12         public static void PopupController()
    13         {
    14             ProcessStartInfo Info = new ProcessStartInfo();
    15             Info.FileName = "Sndvol32";
    16             Process.Start(Info);
    17         }
    18 
    19         /*
    20          * 获得音量范围和获取/设置当前音量
    21          * */
    22         public static int MaxValue
    23        {
    24            get { return int.Parse(iMaxValue.ToString()); }
    25        }
    26         public static int MinValue
    27        {
    28            get { return int.Parse(iMinValue.ToString()); }
    29        }
    30         public static int CurrentValue
    31         {
    32             get {
    33                 GetVolume();
    34                 return iCurrentValue;
    35             }
    36             set {
    37                 SetValue(MaxValue, MinValue, value);
    38             }
    39         }
    40 
    41 
    42         #region Private Static Data Members
    43         private const UInt32 iMaxValue = 0xFFFF;
    44         private const UInt32 iMinValue = 0x0000;
    45         private static int iCurrentValue = 0;
    46         #endregion
    47         #region Private Static Method
    48         /*
    49          * 得到当前音量
    50          **/
    51         private static void GetVolume()  
    52         {  
    53             UInt32 d, v;  
    54             d = 0;  
    55             long i = waveOutGetVolume(d, out v);  
    56             UInt32 vleft = v & 0xFFFF;  
    57             UInt32 vright = (v & 0xFFFF0000) >> 16;
    58             UInt32 all = vleft | vright;
    59             UInt32 value = (all * UInt32.Parse((MaxValue - MinValue).ToString())/((UInt32)iMaxValue)); 
    60             iCurrentValue = int.Parse(value.ToString());
    61         }  
    62 
    63         /*
    64          * 修改音量值
    65          * */
    66         private static void SetValue(int aMaxValue , int aMinValue, int aValue)  
    67         {  
    68             //先把trackbar的value值映射到0x0000~0xFFFF范围  
    69             UInt32 Value = (UInt32)((double)0xffff * (double)aValue / (double)(aMaxValue - aMinValue));
    70             //限制value的取值范围  
    71             if (Value < 0) Value = 0;  
    72             if (Value > 0xffff) Value = 0xffff;  
    73             UInt32 left = (UInt32)Value;//左声道音量  
    74             UInt32 right = (UInt32)Value;//
    75             waveOutSetVolume(0, left << 16 | right); //"<<"左移,“|”逻辑或运算  
    76         }
    77         #endregion
    78         /*
    79          * 在winmm.dll中   
    80          *第一个参数可以为0,表示首选设备   
    81          *第二个参数为音量:0xFFFF为最大,0x0000为最小,
    82          *其中高位(前两位)表示右声道音量,低位(后两位)表示左 声道音量 。
    83         */
    84         #region Windows Media API
    85         [DllImport("winmm.dll")]
    86         private static extern long waveOutSetVolume(UInt32 deviceID, UInt32 Volume);
    87         [DllImport("winmm.dll")]
    88         private static extern long waveOutGetVolume(UInt32 deviceID, out UInt32 Volume);
    89         #endregion
    90     }
    91 }
  • 相关阅读:
    25、继续echarts实现中国地图
    24、echarts做报表
    23、css的定位问题
    22、继续javascript,左边选中的跳到右边
    21、在选择的时候跳到另一页面上,选择男女,然后提交表单内容
    20、formAdd,javascript实现动态添加
    19、javascript基础知识
    18、webservice使用
    17、javaWebService,的使用
    16、使用jQuery的html5player播放器,进行播放
  • 原文地址:https://www.cnblogs.com/weiterli/p/7846930.html
Copyright © 2011-2022 走看看