能否实现vbs搭界面,C语言实现算法?

能否实现vbs搭界面,C语言实现算法?,第1张

能的;

思路关键是要使用程序间通信(这个是很复杂的), 或者是程序间互相调用(这个很简单,也是我的回答所用的方法)

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

效果如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12035266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存