我們在程式開發的時候,常常會用到別人已經設計好的元件.
這些元件由於在開發端的我們,有安裝程式語言的開發環境..
例如說..安裝Visual studio 2005..
那你的電腦裡就一定有一些runtime..
所以..自己開發的程式在所開發的那一台電腦..
只要偵錯測試完畢..
就一定可以run...
但是..
我們不可能要求user安裝類似的開發環境..
也就是說..
使用環境與開發環境通常是不一樣的..
因此我們在開發程式時所用到的元件..
使用者可能沒有相關的dll檔或其他類型的檔(.ocx之類的)
所以我們就必須提供..並且以使用者友善的立場..
自動的幫他註冊在系統中..
下面舉個例子來說如何在VB中自動幫使用者註冊dll或其他元件檔:
-----------------------------------------------------------------------------------------------------------------
ex:在程式裡用到一個叫做MMControl的元件:
1.偵測使用者是否有用到你程式裡所使用的元件:
-----------------------------------------------------------------------------------------------------------------
[實作程式碼]
Dim MyObj_MM As Object '宣告一個物件
'建立MCI.MMControl物件
Set MyObj_MM = Controls.Add("MCI.MMControl", "MMControl1")
MyObj_MM.Visible = True
[說明]
(1)要用到MMControl這個物件,首先必須點選
'專案\設定使用元件\Microsoft Multimedia Control 6.0'
將其勾選起來,把他引用到程式中.
(2)Set MyObj_MM = Controls.Add 這一行是用來測試使用者環境是否可以建立此元件,
若可以,代表使用者已有此元件的相關檔案,若發生錯誤,代表使用者的環境中尚無此元件相關
檔案存在.因此我們可以用On Err的語法在錯誤處理區中替他註冊元件.
-----------------------------------------------------------------------------------------------------------------
2.幫使用者自動註冊元件:
-----------------------------------------------------------------------------------------------------------------
[實作程式碼]
Call Shell("regsvr32 /s" & App.Path & "\Support\MCI32.OCX")
[說明]
[1]regsvr32可以用來設定系統相關元件檔案的路徑,一經設定,系統便可以按照所設定的路徑去找到
相關檔案的位置,而我們只要把元件的相關檔案放在程式的同一個目錄下,使用者便不需安裝開發環境
,就可以透過系統路徑的設定找到我們所提供的元件檔案.
[2]regsvr32的用法:
:
-----------------------------------------------------------------------------------------------------------------
基本上利用以上的兩個步驟,即可完成自動偵測使用者使用環境並自動註冊..
之前遇到的問題..記起來@@..
[完整程式碼]
Private Sub Form_Load( )
Dim MyObj_MM As Object
On Error GoTo DoErr '當有錯誤時,跳到DoErr標籤處
' 建立MCI.MMControl物件
Set MyObj_MM = Controls.Add("MCI.MMControl", "MMControl1")
MyObj_MM.Visible = True '使用者成功建立物件
Unload Me
msgbox "恭喜你,不需註冊元件"
Exit Sub
DoErr:
Dim rtn As String
rtn = MsgBox("系統偵測到您的系統尚未安裝所需的元件,系統將自動幫您註冊所需元件", vbYesNo, "系統訊息")
If rtn = vbYes Then
Unload Me
'註冊相關元件
Call Shell("regsvr32 /s" & App.Path & "\Support\MCI32.OCX")
Call Shell("regsvr32 /s" & App.Path & "\Support\MCICHT.OCX")
Call Shell("regsvr32 /s" & App.Path & "\Support\dao360.OCX")
Else
MsgBox ("系統並未幫您註冊所需元件,程式無法順利執行!")
Unload Me
End If
End Sub
-----------------------------------------------------------------------------------------------------------------
- Feb 02 Mon 2009 10:13
如何自動檢查程式所用到的dll檔並註冊!
全站熱搜
留言列表
發表留言