【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)应用程序指向。

以上就是全部了。: )



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值