程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用VB將命令行軟件Windows化

用VB將命令行軟件Windows化

編輯:VB綜合教程
有很多深受歡迎的軟件,如ARJ,UNDISK等都是在DOS環境下以命令行的形式出現的。其特點就是依靠大量的參數和開關變量來實現其豐富的功能。利用VisualBasic可以簡單地把此類軟件改寫成WINDOWS版本,其中大量的開關參數可用菜單、列表框、組合框和復選框等一一映射成圖形界面。而命令的調用。可以用VB提供的SHELL函數,其語法為:
  
  shell(命令字符串[,窗口風格])
  
  如以下VB小程序:
  
  SubCommand3D1_Click()
  
  Dimx
  
  x=Shell("c:oolsarj.exeaa:democ:demo*.*")
  
  EndSub
  
  但使用SHELL函數會出現WINDOWS界面和DOS黑色界面的突然切換,顯得不美觀。如何解決這個問題呢?使用WINDOWS的API函數WinExec,可以在隱含的窗體中啟動應用程序,使命令行程序完全在後台執行。下面給出一例,將ARJ完全WINDOWS化,其效果完全可以亂真。
  
  SubCommand1_Click()
  
  DimcmdAsString
  
  DimhWndAsInteger
  
  cmd="c:dosARJ.pif"&list1.Text&"-"&LIST2.Text&
  ""&text2.Text&""&text1.Text'list1、list2輸入參數,text1,text2輸入文件路徑
  
  hWnd=WinExec(cmdline,0)'參數為0則隱藏窗體
  
  IfHWND<32Then'hWin<32則啟動應用程序失敗
  
  MsgBox"error!"
  
  ExitSub
  
  EndIf
  
  WhileGetModuleUsage(HWND)
  
  mousepointer=11‘鼠標呈沙漏狀
  
  WAIT=DoEvents()
  
  Wend
  
  mousepointer=1'鼠標復原為箭頭
  
  EndSub
  
  在此例中,筆者使用了WINDOWS的PIF編輯器將ARJ.EXE編輯成ARJ.PIF,是因為類似ARJ這樣的軟件是以全屏方式執行的,而WINEXEC函數只能隱藏以窗體方式運行的程序。在編輯PIF文件時顯示方式選擇“窗口”,執行方式選擇“後台”,這樣就解決了上面提到的界面突換的問題。而調用API函數GetModuleUsage以獲得應用程序結束的標志,若運行完畢則返回TRUE,若未運行完畢則讓出CPU控制權,為運行ARJ提供時機。這樣的小程序完全可以實現命令行軟件的WINDOWS化,而且運行起來真假難辨,有興趣的讀者不妨試一試。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved