能的;
思路關鍵是要使用程序間通信(這個是很復雜的), 或者是程序間互相調用(這個很簡單,也是我的回答所用的方法)
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 ifelse
a = msgbox ( oargs(0) &"和"& oargs(1) & "的最大公因數經計算發現是:" & chr(13) & oargs(2) & " "&chr(13) & "繼續?" , vbYesNo) if vbyes= a then wshshell.run "gui.vbs",1,true end ifend 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=a;ob=b; if (a>b){c=a;a=b;b=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打開輸入框,有參數,就按照代碼輸出它們)