VB源码实现:创建EXE与文件类型关联
"这篇资源是关于使用VB(Visual Basic)编程语言创建.exe程序与特定文件类型关联的源代码。在Windows操作系统中,这种关联允许用户通过双击特定扩展名的文件来启动相应的.exe应用程序。作者提供了CallCreatFileLnk函数的实现,用于创建这种关联。" 在VB中,创建.exe和文件类型的关联主要涉及到Windows注册表的操作。注册表是Windows存储配置信息的地方,包括文件类型关联。以下是对代码中关键部分的详细解释: 1. **常量定义**: - `HKEY_CLASSES_ROOT`: 这是注册表中的一个键,用于存储所有文件类型关联和其他类信息。 - 其他`HKEY_...`常量代表不同的注册表根键,如当前用户、本地机器等。 - `REG_NONE`到`REG_MULTI_SZ`:这些常量代表注册表项的值类型,如无类型、字符串、二进制、DWORD等。 2. **声明函数**: - `RegSetValueEx`: 该函数用于在注册表中设置值。它接受键句柄、值名称、保留值、数据类型、数据和数据大小作为参数。 - `RegCloseKey`: 用于关闭已打开的注册表键句柄。 - `RegCreateKey`: 用于在注册表中创建新的键。返回新键的句柄。 3. **函数CallCreatFileLnk**: - 这个函数可能是用来创建文件关联的核心功能。它接受三个参数:要关联的.exe程序的路径、新的文件扩展名以及一个可能的默认处理程序(如`shdoclc.dll,0`,这通常用于控制台或系统文件)。 - 在这个函数内部,可能涉及使用`RegCreateKey`创建新的文件类型键,然后使用`RegSetValueEx`设置相关联的.exe程序路径和其他信息。 创建这样的关联通常涉及到以下步骤: - 首先,确定要关联的文件类型(例如,`.1nk`)并创建一个对应的注册表键(如`HKEY_CLASSES_ROOT\.1nk`)。 - 接着,设置该键的默认值为.exe程序的类ID(CLSID),这可以是`shdoclc.dll,0`或其他能处理该文件类型的程序。 - 然后,创建`HKEY_CLASSES_ROOT\.1nk\shell`键,表示对该文件的“操作”。 - 在`shell`下创建一个子键,如`open`,表示打开文件的动作。 - 最后,在`open`键下创建`command`键,并设置其默认值为.exe程序的完整路径,这样当用户双击`.1nk`文件时,系统会调用这个命令来打开文件。 通过这段VB源码,开发者可以自定义文件类型关联,使得用户可以更方便地启动特定的.exe应用程序来处理特定类型的文件。这对于定制化应用或者开发自定义文件处理程序非常有用。
'================================================================
'//功能:创建exe和文件类型的关联
'//用法:Call CreatFileLnk("C:\a.exe",".1nk","shdoclc.dll,0")
'//解释:启动.1nk类型文件时 就会启动a.exe
'================================================================
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
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 Declare Sub SHChangeNotify Lib "shell32" (ByVal wEventId As Long, ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long)
Private Const SHCNE_ASSOCCHANGED = &H8000000
Private Const SHCNF_FLUSHNOWAIT = &H2000
Public Sub CreatFileLnk(ByVal ExePath As String, ByVal sLnkName As String, ByVal sICO As String)
'建立文件类型
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 0
- 资源: 59
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Ansys Comsol实现力磁耦合仿真及其在电磁无损检测中的应用
- 西门子数控系统调试与配置实战案例教程
- ELM多输出拟合预测模型:简易Matlab实现指南
- 一维光子晶体的Comsol能带拓扑分析研究
- Borland-5技术资料压缩包分享
- Borland 6 技术资料分享包
- UE5压缩包处理技巧与D文件介绍
- 机器学习笔记:深入探讨中心极限定理
- ProE使用技巧及文件管理方法分享
- 增量式百度图片爬虫程序修复版发布
- Emlog屏蔽用户IP黑名单插件:自定义跳转与评论限制
- 安装Prometheus 2.2.1所需镜像及配置指南
- WinRARChan主题包:个性化你的压缩软件
- Neo4j关系数据映射转换测试样例集
- 安装heapster-grafana-amd64-v5-0-4所需镜像介绍
- DVB-C语言深度解析TS流