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); }
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); } }
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); }