`
csstome
  • 浏览: 1476699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一段设置和取消windows静音效果的Delphi代码

阅读更多

看到完美mm在windows版提问求这么一个dos命令,发现没有,于是自己摘录了以下代码编译了一个控制台程序

unit Unit1;
interface
uses MMSystem, Dialogs;
type TDeviceName = (Master, Microphone, WaveOut, Synth);
procedure SetVolumeMute(DN:TDeviceName; Value:Boolean);
implementation
procedure SetVolumeMute(DN:TDeviceName; Value:Boolean);
var
hMix: HMIXER;
mxlc: MIXERLINECONTROLS;
mxcd: TMIXERCONTROLDETAILS;
vol: TMIXERCONTROLDETAILS_UNSIGNED;
mxc: MIXERCONTROL;
mxl: TMixerLine;
intRet: Integer;
nMixerDevs: Integer;
mcdMute: MIXERCONTROLDETAILS_BOOLEAN;
begin
// Check if Mixer is available
nMixerDevs := mixerGetNumDevs();
if (nMixerDevs < 1) then
begin
Exit;
end;
// open the mixer
intRet := mixerOpen(@hMix, 0, 0, 0, 0);
if intRet = MMSYSERR_NOERROR then
begin
case DN of
Master : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
Microphone :
mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE;
WaveOut : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;
Synth : mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;
end;
mxl.cbStruct := SizeOf(mxl);
// mixerline info
intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE);
if intRet = MMSYSERR_NOERROR then
begin
FillChar(mxlc, SizeOf(mxlc),0);
mxlc.cbStruct := SizeOf(mxlc);
mxlc.dwLineID := mxl.dwLineID;
mxlc.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE;
mxlc.cControls := 1;
mxlc.cbmxctrl := SizeOf(mxc);
mxlc.pamxctrl := @mxc;
// Get the mute control
intRet := mixerGetLineControls(hMix, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE);
if intRet = MMSYSERR_NOERROR then
begin
FillChar(mxcd, SizeOf(mxcd),0);
mxcd.cbStruct := SizeOf(TMIXERCONTROLDETAILS);
mxcd.dwControlID := mxc.dwControlID;
mxcd.cChannels := 1;
mxcd.cbDetails := SizeOf(MIXERCONTROLDETAILS_BOOLEAN);
mxcd.paDetails := @mcdMute;
// Set and UnSet mute
mcdMute.fValue := Ord(Value);
intRet := mixerSetControlDetails(hMix, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE);
if intRet <> MMSYSERR_NOERROR then
ShowMessage('SetControlDetails Error');
end
else
ShowMessage('GetLineInfo Error');
end;
intRet := mixerClose(hMix);
end;
end;
end.

分享到:
评论

相关推荐

    使用微控制器(Arduino/Microbit) 按下单个按钮可将所有系统麦克风静音/取消静音_C++_代码_相关文件_下载

    Mewt 允许您创建一个硬件按钮,只需按一下 Windows、Mac 和 Linux,即可将所有系统麦克风静音和取消静音。 Mewt 在操作系统 (OS) 级别运行,因此这将静音/取消静音所有会议软件(Zoom、Google Meet、Teams、WebEx、...

    编程实现麦克风静音与取消

    设置电脑的麦克风静音和取消操作,如果系统不支持静音操作,则设置麦克风的音量为最小,和别的版本的不一样,自己写的,欢迎指导。

    设置计算机静音源代码

    定时设置计算机系统为静音状态 此为易语言代码,其他暂时不提供了

    Delphi编程大师2003 4of5

    和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程中得到不同的启发与参考. 本软件含有: BorlandDelphi...

    Delphi编程大师2003 2of5

    和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程中得到不同的启发与参考. 本软件含有: BorlandDelphi...

    Delphi编程大师2003 1of5

    和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程中得到不同的启发与参考. 本软件含有: BorlandDelphi...

    Delphi编程大师2003 5of5

    和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程中得到不同的启发与参考. 本软件含有: BorlandDelphi...

    Delphi编程大师2003 3of5

    和各类Delphi编程的软件原代码 不但能使你简单的操控Delphi进行编程.而且能对初学者进行深入浅出的教学. 同时Delphi的原代码能帮助各位Delphi爱好者在编程过程中得到不同的启发与参考. 本软件含有: BorlandDelphi...

    一段静音的mp3文件(mute.mp3)

    这是一段静音的mp3格式的音频文件,可以使用任意常用播放器进行播放,有时候我们会经常遇到需要一段静音音频做实验,但是网上资源非常少,自己就上传一份。

    一段静音的音频文件(mute.wav)

    这是一段静音的wav格式的音频文件,可以使用任意常用播放器进行播放,有时候我们会经常遇到需要一段静音音频做实验,但是网上资源非常少,自己就上传一份。

    DELPHI音频播放音量调节

    //设置静音(bMute:Ture.静音/False.有音) //创建播放器: Player:TMyPlayer; Player:=TMyPlayer.Create; //播放文件: function TMyPlayer.PlayFile&#40;filename:WideString&#41;:Boolean;//直接播放文件 ...

    KX音响效果器

    KX音响效果器

    delphi函数集81个

    delphi函数集 1. CustomCursor ................. 自定义光标 2. ReadRegKey ................... 读注册表键值 3. WriteRegKey .................. 写注册表键值 4. GetExePath ................... 取应用程序路径...

    浏览器静音技术

    前段时间帮朋友写了个Dll,插入浏览器后将可以控制静音与否。后来想想,如果自己放一个浏览器的COM组件,岂不是连Dll都省了? 所以写了这个Demo。 测试方法很简单:在URL地址栏输入URL,勾选“静音”将静音,...

    C#获取及设置系统音量

    在网上找设置/获取Windows操作系统音量的方法,要么只有设置的办法(通过SendMessageW发送增减音量、静音消息),要么只适用于Windows XP。找到的关于CoreAudioApi方式处理的方式,里面提供的dll已经失效...

    AutoMute, 在你的当前 Wi - Fi网络上,基于你的电脑静音或者取消静音.zip

    AutoMute, 在你的当前 Wi - Fi网络上,基于你的电脑静音或者取消静音 AutoMute -

    VB064-调节音响耳机音量 源代码

    VB064-调节音响耳机音量 源代码

    VOD视频点播系统(delphi)

    1)功能模块包括: 已点歌曲控制模块;粤语歌曲模块;国语歌曲模块;台语歌曲模块;外语歌曲模块;...包括对正在播放的歌曲操作有播放原唱、取消原唱、重播正放歌曲、取消正放歌曲、音量大小、静音的调校。

    Delphi串口及语音传真高级编程.(北航出版.温锦山.唐柱鹏)

     本书的精华是结合我国电信标准和Modem硬件的实际情况,部分修改了APRO组件的代码,用语音识别的方法解决了在“语音”模式中不能判断对方是否挂机、无人接听、忙音、静音等(“数据”模式本来就可以判断),修正了...

    delphi 开发经验技巧宝典源码

    0095 使用Length函数取得一段字符串的长度 65 0096 使用Pos函数返回子字符串第一次出现的索引值 66 0097 使用Quotedstr函数返回字符串的引证串 66 0098 使用Trim函数删除字符串的首尾空格 66 4.2 数学计算...

Global site tag (gtag.js) - Google Analytics