【VB6.0】文件關聯大禮包模塊

哈里在設計自己的NOTE2.0的途中,想加入一個點擊文件就可以打開自己程序的代碼,即文件關聯!

在網上搜索了許多前輩們智慧的結晶後,哈里將其做成了一個模塊文件,模塊代碼如下:

Private Const REG_SZ = 1                         ' Unicode nul terminated string
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Public Function 註冊表註冊(ByVal 註冊表目錄名 As String, ByVal 擴展名 As String) As Long
On Error GoTo ErrHandler
If RegOpenKey(HKEY_CLASSES_ROOT, 註冊表目錄名, hKey) <> 0 Then
    RegSetValue HKEY_CLASSES_ROOT, 擴展名, REG_SZ, 註冊表目錄名, 7
    RegSetValue HKEY_CLASSES_ROOT, 註冊表目錄名 & "\DefaultIcon", REG_SZ, App.Path & "\" & App.EXEName & ".exe,0", 24
    RegSetValue HKEY_CLASSES_ROOT, 註冊表目錄名 & "\Shell", REG_SZ, "open", 4
    RegSetValue HKEY_CLASSES_ROOT, 註冊表目錄名 & "\Shell\open\Command", REG_SZ, App.Path & "\" & App.EXEName & ".exe ""%1""", 22
    註冊表註冊 = 1
Else
    註冊表註冊 = 2
End If
Exit Function
ErrHandler:
註冊表註冊 = 0
End Function

將模塊建立好之後,這個函數要怎麼用呢?

函數的語法是:

註冊表註冊(文件類型名, 後綴) 

返回一個數字(0:權限不足或其他錯誤,註冊失敗。1:註冊成功。2:已註冊。)

其中文件類型名可以隨便取,但最好是純英文字母組合,需要雙引號申明其本身是字符串!

後綴以關聯TXT文件爲例應爲:".txt" 【需要加雙引號!】

加上Select語句形成一個完整的函數應用方式(以關聯TXT文件爲例):

Select Case 註冊表註冊("TXTFlie", ".txt")
    Case 0
        MsgBox "軟件註冊失敗!請用管理員身份運行!"
    Case 1
        MsgBox "註冊成功!"
End Select

Case 2 可以接應用程序已經註冊過之後的代碼,這裏就略過了。

整個函數對註冊表主要進行了三項操作:

1、添加文件後綴及表內目錄指向。

2、指向目錄的創建:

    1)文件圖標指向。

    2)應用程序指向。

以上就是全部了。: )



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章