C#调用vbs脚本实现Windows版Siri
最近新加入,把自己一些有意思的小东西分享给大家,我是一个学生,代码写得少,哪里不规范,希望大家见谅。
这事我封装好的一个类,可以直接实例化对象之后,调用"对象.Talk()"方法,让机器读出你传递进去的字符串。
这个程序原理很简单,就是创建文件读写流,在D:\Alarm下创建一个sys.vbs文件,里面写入CreateObject("SAPI.SpVoice").Speak "你的字符串",然后执行这个vbs,就可以让你的电脑发声啦,听说Windows下的大多数是女声,反正我的电脑上是女声。
程序很简单,至于文件夹创建,因为是我写的一个外部程序,没有把文件夹的判断创建放进去,如果要自己生成的话记得 加上文件夹存在与否的判断。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using System.Windows.Forms; 7 8 namespace 电脑对话 9 { 10 class ComTalk 11 { 12 private void runthis() 13 { 14 System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo(); 15 16 //设置外部程序名 17 Info.FileName = "sys.vbs"; 18 19 //设置外部程序工作目录为 D:\Alarm 20 Info.WorkingDirectory = @"D:\Alarm"; 21 22 //最小化方式启动 23 Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; 24 25 //声明一个程序类 26 System.Diagnostics.Process Proc; 27 28 try 29 { 30 Proc = System.Diagnostics.Process.Start(Info); 31 System.Threading.Thread.Sleep(500); 32 } 33 catch (System.ComponentModel.Win32Exception) 34 { 35 36 return; 37 } 38 } 39 public void Talk(string s) 40 { 41 string content = string.Empty; 42 FileStream fs = new FileStream("D:\\Alarm\\sys.vbs", FileMode.OpenOrCreate, FileAccess.Write); 43 fs.SetLength(0); 44 if (s == string.Empty) 45 { 46 MessageBox.Show("输入的内容不能为空"); 47 } 48 else 49 { 50 StreamWriter sw = new StreamWriter(fs, Encoding.Default); 51 content = s.Trim(); 52 content = @"CreateObject(""SAPI.SpVoice"").Speak """.Trim() + content + @"""".Trim(); 53 sw.Write(content); 54 sw.Close(); 55 } 56 runthis(); 57 } 58 } 59 }
作者:letcafe
-------------------------------------------
个性签名:编程水太深,先会造轮子!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述