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

简介:   最近新加入,把自己一些有意思的小东西分享给大家,我是一个学生,代码写得少,哪里不规范,希望大家见谅。   这事我封装好的一个类,可以直接实例化对象之后,调用"对象.Talk()"方法,让机器读出你传递进去的字符串。

  最近新加入,把自己一些有意思的小东西分享给大家,我是一个学生,代码写得少,哪里不规范,希望大家见谅。

  这事我封装好的一个类,可以直接实例化对象之后,调用"对象.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

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

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

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

目录
相关文章
|
13天前
|
关系型数据库 数据库 PostgreSQL
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
10 0
|
1月前
|
C# Windows
C# 创建 Windows Service 项目
C# 创建 Windows Service 项目
29 1
|
21天前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
33 0
|
23天前
|
安全 Shell Windows
记windows自定义bat脚本自启动
【8月更文挑战第27天】在Windows系统中,可让自定义bat脚本自启动的方法有两种:一是利用“启动”文件夹,通过创建bat脚本的快捷方式并将其放置于该文件夹;二是使用任务计划程序,创建一个启动时触发的任务来运行bat脚本。需确保脚本正确安全,避免对系统产生不良影响。
|
3月前
|
关系型数据库 MySQL 数据安全/隐私保护
windows系统bat批处理 mysql 脚本启动关闭
windows系统bat批处理 mysql 脚本启动关闭
176 3
|
3月前
|
Windows
windows系统vbs脚本 恶搞关不掉的窗口 以及解决办法
windows系统vbs脚本 恶搞关不掉的窗口 以及解决办法
82 2
|
3月前
|
Windows
windows系统vbs脚本 恶搞将系统搞崩 死机 以及解决
windows系统vbs脚本 恶搞将系统搞崩 死机 以及解决
42 1
|
3月前
|
Windows
windows系统vbs脚本 提取文件夹中的所有文件名
windows系统vbs脚本 提取文件夹中的所有文件名
38 0
|
3月前
|
应用服务中间件 nginx Windows
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
58 0
|
3月前
|
Java Windows
windows bat脚本实现快速配置JDK 环境变量
windows bat脚本实现快速配置JDK 环境变量
179 0