日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

實現(xiàn)命令行軟件的WINDOWS化

 昵稱5356750 2011-01-03
有很多深受歡迎的軟件,如ARJ,UNDISK等都是在DOS環(huán)境下以命令行的形式出現(xiàn)的。其特點就是依靠大量的參數(shù)和開關(guān)變量來實現(xiàn)其豐富的功能。利用Visual Basic可以簡單地把此類軟件改寫成WINDOWS版本,其中大量的開關(guān)參數(shù)可用菜單、列表框、組合框和復選框等一一映射成圖形界面。而命令的調(diào)用。可以用VB提供的SHELL函數(shù),其語法為:

shell(命令字符串[,窗口風格])

如以下VB小程序:

Sub Command3D1_Click ()

Dim x

x = Shell("c: oolsarj.exe a a:demo c:demo*.*")

End Sub

  但使用SHELL函數(shù) 會出現(xiàn)WINDOWS界面和DOS黑色界面的突然切換,顯得不美觀。如何解決這個問題呢?使用WINDOWS的API函數(shù)WinExec,可以在隱含的窗體中啟動應用程序,使命令行程序完全在后臺執(zhí)行。下面給出一例,將ARJ完全WINDOWS化,其效果完全可以亂真。

Sub Command1_Click ( )

Dim cmd As String

Dim hWnd As Integer

cmd = "c:dosARJ.pif " & list1.Text & " -" & LIST2.Text &
" " & text2.Text & " " & text1.Text ’list1、list2輸入?yún)?shù),text1,text2輸入文件路徑

hWnd = WinExec(cmdline, 0) ’參數(shù)為0則隱藏窗體

If HWND $#@60; 32 Then ’hWin$#@60;32則啟動應用程序失敗

MsgBox "error!"

Exit Sub

End If

While GetModuleUsage(HWND%)

mousepointer = 11 ‘鼠標呈沙漏狀

WAIT% = DoEvents()

Wend

mousepointer = 1 ’鼠標復原為箭頭

End Sub

  在此例中,筆者使用了WINDOWS的PIF編輯器將ARJ.EXE編輯成ARJ.PIF,是因為類似ARJ這樣的軟件是以全屏方式執(zhí)行的,而WINEXEC函數(shù)只能隱藏以窗體方式運行的程序。在編輯PIF文件時顯示方式選擇“窗口”,執(zhí)行方式選擇“后臺”,這樣就解決了上面提到的界面突換的問題。而調(diào)用API函數(shù)GetModuleUsage以獲得應用程序結(jié)束的標志,若運行完畢則返回TRUE,若未運行完畢則讓出CPU控制權(quán),為運行ARJ提供時機。這樣的小程序完全可以實現(xiàn)命令行軟件的WINDOWS化,而且運行起來真假難辨,有興趣的讀者不妨試一試。


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多