Exemplo n.º 1
0
        private static bool?MuteProcess(int id, bool mute, bool force = false)
        {
            bool?isAudioSessionMuted = VolumeControl.GetAudioSessionMute(id);

            if (isAudioSessionMuted != null &&
                (force || isAudioSessionMuted != mute))
            {
                VolumeControl.SetAudioSessionMute(id, mute);
            }
            return(isAudioSessionMuted);
        }
Exemplo n.º 2
0
        internal static void MuteTerminal(bool mute)
        {
            bool?deviceMuted = VolumeControl.GetDefaultAudioEndpointMute();

            if (deviceMuted != true)
            {
                VolumeControl.SetDefaultAudioEndpointMute(true);
            }

            Process cmdProcess = new Process();

            cmdProcess.StartInfo.FileName    = "cmd.exe";
            cmdProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            cmdProcess.StartInfo.Arguments   = "/k \x07";
            cmdProcess.Start();

            bool wasConhostMuted = false;
            int  attempt         = 0;

            while (wasConhostMuted == false && attempt++ < 2 && !cmdProcess.HasExited)
            {
                cmdProcess.WaitForExit(1500);

                foreach (Process conhost in Process.GetProcessesByName("conhost"))
                {
                    try
                    {
                        bool?isMuted = null;
                        isMuted = VolumeControl.GetAudioSessionMute(conhost.Id);
                        if (isMuted != null && isMuted != mute)
                        {
                            VolumeControl.SetAudioSessionMute(conhost.Id, mute);
                            wasConhostMuted = true;
                            Logger.Instance.Debug($"Mute state for conhost process with id={conhost.Id} was set to {mute}.");
                        }
                    }
                    catch (Exception) { }
                }
            }

            cmdProcess.Kill();
            if (deviceMuted != true)
            {
                VolumeControl.SetDefaultAudioEndpointMute(false);
            }
        }
Exemplo n.º 3
0
        private static bool MuteConhost(bool mute)
        {
            bool audioSessionFound = false;

            foreach (Process conhost in Process.GetProcessesByName("conhost"))
            {
                bool?isAudioSessionMuted = VolumeControl.GetAudioSessionMute(conhost.Id);
                if (isAudioSessionMuted != null && isAudioSessionMuted != mute)
                {
                    VolumeControl.SetAudioSessionMute(conhost.Id, mute);
                    Logger.Instance.Debug($"Mute state for conhost process with id={conhost.Id} was set to {mute}.");
                }

                if (isAudioSessionMuted != null)
                {
                    audioSessionFound = true;
                }
            }
            return(audioSessionFound);
        }