检测掉电脑无声卡则不发声

//添加枚举
public enum 发声
{
     待检测声卡
         , 有声卡
         , 无声卡

}


public static class msgboxExtensions

(

    static 发声 发声 = 发声.待检测声卡;


//发声函数

private static dynamic spVoice = null;

public static void say(this string msg)
{

    if (发声 == 发声.待检测声卡)
     {

        try
         {
             var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_SoundDevice");
             var soundDevices = searcher.Get();

            if (soundDevices.Count > 0)
             {
                 发声 = 发声.有声卡;
                 Console.WriteLine("系统中存在声卡。");
             }
             else
             {
                 发声 = 发声.无声卡;
                 Console.WriteLine("未检测到声卡。");
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine($"发生错误:{ex.Message}");
         }

    }
     if (发声 == 发声.有声卡)
     {
         if (spVoice == null)
         {
             Type type = Type.GetTypeFromProgID("SAPI.SpVoice");
             spVoice = Activator.CreateInstance(type);
         }
         Thread newThread = new Thread(new ThreadStart(() =>
         {
             spVoice.Speak(msg);

        }));
         newThread.IsBackground = true;
         newThread.Start();
     }
     msg.messageBox();
}

}

posted @   网络来者  阅读(10)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示