明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

如何使用VB編寫自動(dòng)反安裝的程序

[摘要]如果您安裝了某一個(gè)軟件之后,想要反安裝,您有二個(gè)方法:1、打開【控制面板】中的【添加刪除新程序】,選擇該軟件來反安裝。2、選擇【開始】【程序集】中軟件所產(chǎn)生的程序組中的反安裝。上面的第一種方法,您不需要作任何處理,一般軟件在安裝完后,都會(huì)在【控制面板】中的【添加刪除新程序】多一個(gè)該軟件的選項(xiàng)。而第...
如果您安裝了某一個(gè)軟件之后,想要反安裝,您有二個(gè)方法:
1、打開【控制面板】中的【添加刪除新程序】,選擇該軟件來反安裝。
2、選擇【開始】【程序集】中軟件所產(chǎn)生的程序組中的反安裝。

上面的第一種方法,您不需要作任何處理,一般軟件在安裝完后,都會(huì)在【控制面板】中的【添加刪除新程序】多一個(gè)該軟件的選項(xiàng)。而第二種方法,就必須要我們編寫程序來解決了!

假設(shè),今天我們編寫了一個(gè)程序叫 Test,當(dāng)您完成 Test.exe 之后,您必須再多編寫一個(gè)自動(dòng)反安裝的程序,我們將文件名稱設(shè)為 unTest.exe(先不要管如何編寫,后面會(huì)說明)。二支程序都完成后,您使用 VB 提供的應(yīng)用程序安裝向?qū)?Application Setup Wizard) 來制作安裝程序時(shí),必須額外再加入 unTest.exe!

加入 unTest.exe 之后,使用者安裝后,安裝程序並不會(huì)在【開始】【程序集】中該系統(tǒng)所產(chǎn)生的程序組【Test】中加入這個(gè)自動(dòng)反安裝程序 unTest.exe 的捷徑,安裝程序只會(huì)將unTest.exe 連同 Test.exe 一起復(fù)制到應(yīng)用程序的目錄中而已!所以如果您想產(chǎn)生unTest.exe 的捷徑,您可能需要稍微修改一下 VB 提供的應(yīng)用程序安裝向?qū)С绦颍?br>
以下我們就實(shí)際來看看 unTest.exe 程序如何編寫:

在 VB 中建立一個(gè)新文檔,取名為 unTest.vbp,表單為 unTest.frm,不需要任何控制項(xiàng),在表單中加入以下程序代碼:

Private Declare Function GetWindowsDirectory Lib "kernel32" _
Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Form_Load()
On Error Goto BaddUn
Dim X&
Dim buffer As String * 128
Dim UnStr As String
Dim size As Integer
Dim retval As Integer
buffer = Space$(128)
size = 128
retval = GetWindowsDirectory(ByVal buffer, ByVal size)
Me.Caption = buffer
'以下的程序代碼必須編寫在同一行中
''''''''''''''''''''''''''''''''''''''''
UnStr = Me.Caption & "\ST5UNST.EXE -n " & Chr(34) & App.Path & "\ST5UNST.LOG" & Chr(34)
''''''''''''''''''''''''''''''''''''''''
'MsgBox UnStr '可顯示可不顯示, 只是測試用
'X& = Shell("C:\WINDOWS\ST5UNST.EXE -n "
' "C:\Program Files\App Name\ST5UNST.LOG""
' ", vbNormalFocus)
X& = Shell(UnStr, vbNormalFocus)
Unload Me
Exit Sub
BaddUn:
MsgBox "for some reason UnInstall can not run."
Exit Sub
End Sub
由以上的程序代碼中,您是否發(fā)現(xiàn), unTest.exe 必須和 St5unst.log 放在同一個(gè)目錄中,不過這只要和上面的程序一樣使用 App.Path 就可以解決了!

注:這個(gè)示例是使用 VB5 來做測試的,如果是其他版本的 VB,ST5UNST.LOG 可能必須改變!