VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 8583|回复: 19

[原创] 建立自已的文件类型并产生关联

[复制链接]
 楼主| 发表于 2007-9-17 22:39:55 | 显示全部楼层 |阅读模式
本帖最后由 icecept 于 2011-10-14 02:01 编辑

'**************************************************************************
'**模 块 名:工程1 - Form1
'**说    明:永远的魔灵 by icecept(郭卫)
'**创 建 人:icecept(魔灵)
'**日    期:2007-09-17 01:45:07
'**修 改 人:icecept(魔灵)
'**版    本:V1.0.0
'**E-mail  :icecept@163.com    QQ:543375508
'**网    址:http://hi.baidu.com/icecept   http://icecept.taobao.com
'*************************************************************************
Option Explicit
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const REG_NONE = 0
Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_DWORD_BIG_ENDIAN = 5
Const REG_MULTI_SZ = 7
'-注册表 API 声明...
'---------------------------------------------------------------
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (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 Sub Command1_Click()
    '建立文件类型
    Dim ret As Long, ExePath As String, hKey As Long
    '定义 .pad文件
    ret = RegCreateKey(HKEY_CLASSES_ROOT, ".PAD", hKey)
    '定义文件的类型,注意最后一个数字,它是 "userfile"的字节数 + 1
    ret = RegSetValue(HKEY_CLASSES_ROOT, ".PAD", REG_SZ, "userfile", 9)
    '定义"userfile"
    ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile", hKey)
    '定义文件类型文本说明
    ret = RegSetValueEx(hKey, "", 0, REG_SZ, ByVal "记事薄文件", LenB(StrConv("记事薄文件", vbFromUnicode)) + 1)
    '注: RegSetValueEx第二项为空时把值填入第一行的默认项
    '定义它的操作
    ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\shell", hKey)
    '具体定义操作的名称
    ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\shell\open", hKey)
    '定义操作的动作
    ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\shell\open\command", hKey)
    '获得VB程序名称
    ExePath = App.Path & "\" & "记事薄" & ".exe %1"
    '以下是最关键的一步!将 "userfile" 的打开(open)操作和我们的程序关联起来
    ret = RegSetValue(HKEY_CLASSES_ROOT, "userfile\shell\open\command", REG_SZ, ExePath, LenB(StrConv(ExePath, vbFromUnicode)) + 1)
    '改变图标
    ret = RegCreateKey(HKEY_CLASSES_ROOT, "userfile\DefaultIcon", hKey)
    ret = RegSetStringValue(hKey, "", App.Path & "\记事薄.exe,0", True)
    '关闭注册表项
    RegCloseKey hKey
    BreakDir
End Sub

评分

参与人数 4威望 +26 人气 +1 收起 理由
红色狂想 + 3 + 1 发布源码
sonce + 5 发布源码
admin6677 + 10 哈哈
VBProFan + 8 精品文章

查看全部评分

本帖被以下淘专辑推荐:

 楼主| 发表于 2007-11-6 20:38:38 | 显示全部楼层
请大家把userfile改成txtfile试试
回复 支持 反对

使用道具 举报

发表于 2007-11-7 08:27:21 | 显示全部楼层
好东西,谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2007-11-7 08:44:19 | 显示全部楼层
支持一下。再顶~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2007-11-7 09:14:36 | 显示全部楼层
这个不错!支持一下..
回复 支持 反对

使用道具 举报

发表于 2007-11-7 10:29:32 | 显示全部楼层
顶一个!顺便++分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-7 15:27:48 | 显示全部楼层

回复 #6 admin6677 的帖子

谢谢支持
回复 支持 反对

使用道具 举报

发表于 2007-11-7 22:29:48 | 显示全部楼层
虽然看到过N次了,还是顶你一下
回复 支持 反对

使用道具 举报

发表于 2007-11-8 09:56:26 | 显示全部楼层
不能即时刷新.
回复 支持 反对

使用道具 举报

发表于 2007-11-8 15:55:50 | 显示全部楼层
我都用wise的安装包关联
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-8-19 21:47

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表