zoukankan      html  css  js  c++  java
  • 一段设置和取消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.

  • 相关阅读:
    各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
    php实现和c#一致的DES加密解密
    使用phpQuery轻松采集网页内容
    PHP 类与对象 全解析(三)
    PHP 类与对象 全解析( 二)
    PHP 类与对象 全解析( 一)
    iconv 中文截断问题的解决方法
    jQuery插件开发全解析
    jQuery ajax
    360手机新品牌5月6日公布 周鸿祎席地而坐谈AK47
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204905.html
Copyright © 2011-2022 走看看