一、Shell函數(shù)
Shell函數(shù)是VB中的內(nèi)部函數(shù),它負(fù)責(zé)執(zhí)行一個(gè)可執(zhí)行文件,返回一個(gè)Variant(Double),如果成功的話(huà),代表這個(gè)程序的進(jìn)程ID,若不成功,則會(huì)返回0。
Shell的語(yǔ)法:Shell(PathName[,WindowStyle])。
PathName 為必需參數(shù)。類(lèi)型為String,它指出了要執(zhí)行的程序名,以及任何需要的參數(shù)或命令行變量,也可以包括路徑名。
WindowStyle為可選參數(shù)。Integer類(lèi)型,指定在程序運(yùn)行時(shí)窗口的樣式。WindowStyle有以下這些值。
常量值描述
VbHide 0 窗口被隱藏,且焦點(diǎn)會(huì)移到隱式窗口。
VbNormalFocus 1 窗口具有焦點(diǎn),且會(huì)還原到它原來(lái)的大小和位置。
VbMinimizedFocus 2 窗口會(huì)以一個(gè)具有焦點(diǎn)的圖標(biāo)來(lái)顯示(缺省值)。
VbMaximizedFocus 3 窗口是一個(gè)具有焦點(diǎn)的最大化窗口。
VbNormalNoFocus 4 窗口會(huì)被還原到最近使用的大小和位置,而當(dāng)前活動(dòng)的窗口仍然保持活動(dòng)。
VbMinimizedNoFocus 6 窗口會(huì)以一個(gè)圖標(biāo)來(lái)顯示,而當(dāng)前活動(dòng)的窗口仍然保持活動(dòng)。
二、關(guān)于WinRar的用法
主要介紹以下如何在WinRar中用命令行來(lái)壓縮和解壓縮文件。
壓縮:WINRAR A [-switches]
例如你想把try.mdb壓縮到C盤(pán)下,可以WINRAR A C:\try.rar C:\try.mdb
解壓縮:如果帶目錄解壓縮
WINRAR X [-switches]
如果在當(dāng)前目錄解壓縮,即解壓縮時(shí)不寫(xiě)目錄名
WINRAR E [-switches]
例如你想把try.rar解壓縮到C盤(pán)下,可以WINRAR X C:\try.rar C:\try.mdb
三、一個(gè)例子
在VB中新建一個(gè)工程,在Form1中添加兩個(gè)按鈕Command1、Command2和Command3,把他們的Caption屬性分別設(shè)為"壓縮文件"、"解壓縮文件"和"傳遞文件"。按Command1時(shí)把文件try.mdb壓縮成try.rar。
Private Sub Command1_Click()
Dim Rarexe As String 'WINRAR執(zhí)行文件的位置
Dim Source As String ' 壓縮前的原始文件
Dim Target As String ' 壓縮后的目標(biāo)文件
Dim FileString as String 'Shell指令中的字符串
Dim Result As Long
Rarexe="C:\program files\winrar\winrar"
Source="C:\try.mdb"
Target="C:\try.rar"
FileString = rarexe & " a " & Target & " " & Source
Result = Shell(FileString, vbHide)
End Sub
解壓的過(guò)程類(lèi)似,按Command2可以把try.rar解壓生成 try.mdb。在執(zhí)行了上面的壓縮過(guò)程后,可以刪除文件try.mdb,來(lái)解壓縮重新生成try.mdb。
Private Sub Command2_Click()
Dim Rarexe As String 'WINRAR執(zhí)行文件的位置
Dim Source As String ' 解壓縮前的原始文件
Dim Target As String ' 解壓縮后的目標(biāo)文件
Dim FileString as String 'Shell指令中的字符串
Dim Result As Long
Rarexe="C:\program files\winrar\winrar"
Source="C:\try.rar"
Target="C:\try.mdb"
FileString = rarexe & " X " & Source & " " & Target
Result = Shell(FileString, vbHide)
End Sub
文件從一臺(tái)計(jì)算機(jī)傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)前,應(yīng)知道另一臺(tái)計(jì)算機(jī)的名字,然后用FileCopy語(yǔ)句就可以了。假設(shè)要把壓縮后try.rar傳遞到計(jì)算機(jī)名為"other"的共享目錄"want"下。
Private Sub Command3_Click()
Dim SourceFile, DestinationFile
SourceFile ="C:\try.rar " ' 指定源文件名。
DestinationFile = "\\other\want\try.rar" ' 指定目的文件名。
FileCopy SourceFile, DestinationFile ' 將源文件的內(nèi)容復(fù)制到目的文件中。
End Sub
怎么樣,十分簡(jiǎn)單吧?