vs中程序获取计算机系统音量,用C# 控制Windows系统音量的实现方法
C#开发Windows应用程序中经常需要去控制系统的音量,分两种方式:
1.使用Win Api控制
2.使用C++ dll控制
Win Api控制:
使用user32.dll和winmm.dll都可以控制系统音量,区别是Win系统的版本。winmm.dll Xp环境下可用,user32.dll Vista及以上版本。
C++ dll控制:
CoreAudioApi 是C++ 第三方封装了音量控制,网上下载DLL后再项目中引用即可使用。CoreAudioApi Vista及以上版本支持。
下面给出代码
1.winmm控制方式,涉及Xp系统波形声音的左右声道,高位为左声道,低位为右声道:
复制代码 代码如下:
winmm
[DllImport("winmm.dll", EntryPoint = "waveOutSetVolume")]
public static extern int WaveOutSetVolume(IntPtr hwo, uint dwVolume);
private void SetVol(double arg){
double newVolume = ushort.MaxValue * arg / 10.0;
uint v = ((uint)newVolume) & 0xffff;
uint vAll = v | (v << 16);
int retVal = WaveOutSetVolume(IntPtr.Zero, vAll);
}
2.user32控制方式:
复制代码 代码如下:
user32
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
public void SetVol(){
p = Process.GetCurrentProcess();
for (int i = 0; i < 5; i++) {
SendMessageW(p.Handle, WM_APPCOMMAND, p.Handle, (IntPtr)APPCOMMAND_VOLUME_UP);
}
}
private Process p;
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int APPCOMMAND_VOLUME_UP = 0x0a0000;
private const int APPCOMMAND_VOLUME_DOWN = 0x090000;
private const int WM_APPCOMMAND = 0x319;
3.CoreAudioApi
复制代码 代码如下:
CoreAudioApi
Using CoreAudioApi;
public void SetVol(double arg) {
device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
device.AudioEndpointVolume.MasterVolumeLevelScalar = (float)arg;
}
private MMDevice device;
private MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
时间: 2013-05-14
vs中程序获取计算机系统音量,用C# 控制Windows系统音量的实现方法相关推荐
- java控制系统音量_Java 控制 Windows 系统音量-Go语言中文社区
目录 1.使用 Java 来控制 Windows 系统音量,使用 JNA 调用 windows 底层 API 因为有点麻烦,所以这里采用纯 Java API结合 VBS 脚本的方式进行控制. 2.可以 ...
- 控制windows系统音量
网上有一些控制系统音量的方法: win xp系统可以用mixerOpen等方式: win 7系统可以用wsapi等方式:WASAPI的全称是Windows Audio Session API(Wind ...
- 需求:解压获取ipa里面的图片在windows系统上打不开
需求:解压获取ipa里面的图片资源在windows系统上竟然打不开,何解? 想参考第三方的app里面的图片资源,但不知道为神马从ipa文件提取出来的png图片在mac上可以打开,而发送到window上 ...
- NSIS(Nullsoft Scriptable Install System)开源安装程序制作软件使用详细步骤(Windows系统下)
NSIS(Nullsoft Scriptable Install System)开源安装程序制作软件使用详细步骤(Windows系统下)安装包制作 1.软件详情 软件版本 版本说明 翻译跟进 2.教程 ...
- 微信小程序获取Onenet温湿度数据并控制灯亮灭
其实之前就写过类似的文章,但是看过我博客的朋友就知道,我是先写微信小程序获取onenet,然后再写esp32上云到onenet.一篇是ESP32-C3通过MQTT协议把温湿度上传到OneNet平台 ...
- android多屏应用程序,微软也尝试“多屏协同” Windows系统可以运行安卓程序
原标题:微软也尝试"多屏协同" Windows系统可以运行安卓程序 [环球网科技综合报道]一直以来人们希望手机和电脑能更好的协作,来帮助提高生产力,但是因为电脑的系统和手机操作系统 ...
- C# Windows系统音量调节Demo源码
基于.NET Framework 4.0开发,包含滑块设置音量,键盘F1.F2调节音量. 通过滑块调节系统音量核心代码 /// <summary>/// 滑块设置音量/// </su ...
- electron调节windows系统音量解决方案
借助NirCmd的能力 官方地址 下载地址 使用NirCmd的相应命令 将音量设为最高值 nircmd.exe setsysvolume 65535 静音 nircmd.exe mutesysvolu ...
- 当windows 7系统中程序和功能无法卸载IE9,10,11时的方法
1.首先进入打开这个 C:\Windows\TEMP\ 文件夹,将里面的所有文件都清空了. 2.依次点击"开始"-"所有程序"-"附件",右 ...
- win7中计算机被改为了句号,如果不用windows系统还可以用什么桌面操作系统 桌面操作系统更换指南...
腾讯视频/爱奇艺/优酷/外卖 充值4折起 在过去的几年里,微软对于桌面操作系统市场的压制已经开始松懈,如果你厌倦了一成不变的Windows XP,或者是无法接受拥有两个彼此独立模式的Windows8, ...
最新文章
- Scala Learn 1 Basic
- 湮灭尽头的一点光---炮粒子
- AS插件-android-selector-chapek
- 【STM32】中断相关函数和类型
- xml android 字体,自定义字体和XML布局(Android)
- java的重写、重载、覆盖的差别
- java派生类_我可以使派生类从Java的基类继承派生成员...
- 网易邮箱写邮件HTML转换按钮,网易邮箱推出虚拟场景写信功能 身临其境写邮件...
- Mars 如何分布式地执行
- spark将rdd转为string_八、Spark之详解Tranformation算子
- c# reverse_清单 .Reverse()方法,以C#为例
- 漫画让你秒懂5G黑科技....
- ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转
- 2022年P气瓶充装考试模拟100题模拟考试平台操作
- 1128: mxh道歉记
- 管理的常识(2):什么是领导
- xls和xlsx的区别
- 在vue项目中使用echarts 阿星小栈
- 第一章:机器学习概览
- Flume之生产正确的使用方式一(Singel Agent)
热门文章
- 未来城市插画mac动态桌面壁纸
- RISC-V MCU 应用教程之RTC自动唤醒
- VS2017 错误	LNK2005
- Http GET 请求参数中文乱码
- 阐述SDN的原理、SDN使用场景、SDN技术的优缺点、SDN发展现状及分析SDN对社会和环境的影响
- 全民K歌神器,这款麦克风唱享高音质体验
- 利用FFmpegFrameGrabber截取视频中的某一帧图片压缩并旋转
- 用python计算100以内所有奇数的和_Python-while 计算100以内奇数和的方法
- python打印网页成pdf_html – 在chrome-python 2.7中自动打印/保存网页为pdf
- 创业不难,找准项目才难,教你一眼识破好项目