1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#调用vbs脚本实现Windows版Siri

C#调用vbs脚本实现Windows版Siri

时间:2019-10-22 20:55:34

相关推荐

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 {10class ComTalk11{12 private void runthis()13 {14 System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();15 16 //设置外部程序名 17 Info.FileName = "sys.vbs";18 19 //设置外部程序工作目录为 D:\Alarm20 Info.WorkingDirectory = @"D:\Alarm";21 22 //最小化方式启动23 Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;24 25 //声明一个程序类 26 System.Diagnostics.Process Proc;27 28 try29 {30 Proc = System.Diagnostics.Process.Start(Info);31 System.Threading.Thread.Sleep(500);32 }33 catch (ponentModel.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 else49 {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 出处:/letcafe/

-------------------------------------------

个性签名:编程水太深,先会造轮子!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。