能的;
思路关键是要使用程序间通信(这个是很复杂的), 或者是程序间互相调用(这个很简单,也是我的回答所用的方法)
e.g.
图形界面用vbs
文件名叫: gui.vbs (为了它们可以相互调用,应该把最终可执行文件放在同一个目录下)
set oArgs=wscript.arguments
set WshShell = CreateObject("WScript.Shell")
dim n2
if oArgs.Count=0 then
n2=InputBox("Enter 2 numbers "&chr(13)&"like this"&chr(13)&"22 12","求两数的最大公因数")
if not(isempty(n2)) then
'msgbox "即将运行"&chr(13)&"cli.exe """ &n2 &""""
'相互调用的地方是程序调试的重点哦
wshshell.run "cli.exe """ &n2 &"""",0,true
end if
else
a = msgbox ( oargs(0) &"和"&oargs(1) &"的最大公因数经计算发现是:" &chr(13) &oargs(2) &" "&chr(13) &"继续?" , vbYesNo)
if vbyes= a then
wshshell.run "gui.vbs",1,true
end if
end if
set oArgs=Nothing
cli.c底层代码
//文件名: cli.c 编译到cli.exe,放在与gui.vbs相同的目录下的
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char**argv){
long c,a,b,oa,ob
char s[30]
if (argc <2 ) return 1
sscanf(argv[1],"%ld%ld",&a,&b)
oa=aob=b
if (a>b){c=aa=bb=c}
while(b!=0){
c=a
a=b
b=c%b
}
sprintf(s,"gui %ld %ld %ld",oa,ob,a)
printf("gui %ld %ld %ld\n%s",oa,ob,a,s)
system(s)
return 0
}
编译cli.c到cli.exe到当前目录,再用记事本输入gui.vbs到当前目录(以c:\users\john\vbs为例)(可以拷贝代码)
如图(最后点击gui.vbs就可以用了,算法部分由c实现,使用sscanf和argv两个东东接收vbs的”输入“,经过一通计算,最后通过system调用回gui.vbs,输出结果;没有参数的执行gui.vbs打开输入框,有参数,就按照代码输出它们)
没用过语音输出,一般这种东西都应有接口函数,调用接口函数就可以了。通过命令行方式可以将要运行的命令编成批处理文件就是.bat文件然后再执行试试。在程序中先生成批处理文件然后再执行。
1、把vbs代码直接保存成vbs为扩展名的文件,双击就可以执行,效果如下:
2、如出现未能执行的情况,可能为文件关联问题,可以在命令行事执行,以D:\test.vbs为例如下:
cscript d:\test.vbs
效果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)