VC++实现添加文件关联的方法示例
发布时间 - 2026-01-11 02:59:35 点击率:次本文实例讲述了VC++实现添加文件关联的方法。分享给大家供大家参考,具体如下:
// 检测文件关联情况
// strExt: 要检测的扩展名(例如: ".txt")
// strAppKey: ExeName扩展名在注册表中的键值(例如: "txtfile")
// 返回TRUE: 表示已关联,FALSE: 表示未关联
BOOL CheckFileRelation(const char *strExt, const char *strAppKey)
{
int nRet=FALSE;
HKEY hExtKey;
char szPath[_MAX_PATH];
DWORD dwSize=sizeof(szPath);
if(RegOpenKey(HKEY_CLASSES_ROOT,strExt,&hExtKey)==ERROR_SUCCESS)
{
RegQueryValueEx(hExtKey,NULL,NULL,NULL,(LPBYTE)szPath,&dwSize);
if(_stricmp(szPath,strAppKey)==0)
{
nRet=TRUE;
}
RegCloseKey(hExtKey);
return nRet;
}
return nRet;
}
//---------------------------------------------------------------------------
// 注册文件关联
// strExe: 要检测的扩展名(例如: ".txt")
// strAppName: 要关联的应用程序名(例如: "C:\MyApp\MyApp.exe")
// strAppKey: ExeName扩展名在注册表中的键值(例如: "txtfile")
// strDefaultIcon: 扩展名为strAppName的图标文件(例如: "C:\MyApp\MyApp.exe,0")
// strDescribe: 文件类型描述
void RegisterFileRelation(char *strExt, char *strAppName, char *strAppKey, char *strDefaultIcon, char *strDescribe)
{
char strTemp[_MAX_PATH];
HKEY hKey;
RegCreateKey(HKEY_CLASSES_ROOT,strExt,&hKey);
RegSetValue(hKey,"",REG_SZ,strAppKey,strlen(strAppKey)+1);
RegCloseKey(hKey);
RegCreateKey(HKEY_CLASSES_ROOT,strAppKey,&hKey);
RegSetValue(hKey,"",REG_SZ,strDescribe,strlen(strDescribe)+1);
RegCloseKey(hKey);
sprintf(strTemp,"%s\\DefaultIcon",strAppKey);
RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);
RegSetValue(hKey,"",REG_SZ,strDefaultIcon,strlen(strDefaultIcon)+1);
RegCloseKey(hKey);
sprintf(strTemp,"%s\\Shell",strAppKey);
RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);
RegSetValue(hKey,"",REG_SZ,"Open",strlen("Open")+1);
RegCloseKey(hKey);
sprintf(strTemp,"%s\\Shell\\Open\\Command",strAppKey);
RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey);
sprintf(strTemp,"%s \"%%1\"",strAppName);
RegSetValue(hKey,"",REG_SZ,strTemp,strlen(strTemp)+1);
RegCloseKey(hKey);
}
用法如下:
void CguanlianDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//使用这两个函数进行关联的示例代码
char strExt[10] = ".zwcTxt";
char strAppKey[30] = "Windows.zwcTxt.1.0";
BOOL relationExists = CheckFileRelation(strExt, strAppKey);
if(!relationExists)
{
char strAppName[MAX_PATH + 1] = "E:\\Desktop\\Temp\\GMTools.exe";
char strDefaultIcon[MAX_PATH + 1] = "";
char strDescribe[100] = "WellTest Interpretation Files";
RegisterFileRelation(strExt, strAppName, strAppKey, strDefaultIcon, strDescribe);
}
}
希望本文所述对大家VC++程序设计有所帮助。
# VC++
# 添加
# 文件关联
# VC++实现文件与应用程序关联的方法(注册表修改)
# C++写注册表项实例
# C++访问注册表获取已安装软件信息列表示例代码
# C++中事件机制的简洁实现及需要放弃的特性
# C++设置事件通知线程工作的方法
# 解决C++中事件不响应的方法详解
# C++事件处理中__event与__raise关键字的用法讲解
# 深入解析C++程序中激发事件和COM中的事件处理
# C++事件处理中的__hook与__unhook用法详解
# C++事件驱动型银行排队模拟
# 扩展名
# 注册表
# 键值
# 在此
# 这两个
# 给大家
# 所述
# 程序设计
# 应用程序
# 讲述了
# nRet
# int
# hExtKey
# HKEY
# CheckFileRelation
# BOOL
# char
# const
# szPath
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
装修招标网站设计制作流程,装修招标流程?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
微信公众帐号开发教程之图文消息全攻略
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
百度浏览器如何管理插件 百度浏览器插件管理方法
中国移动官方网站首页入口 中国移动官网网页登录
php 三元运算符实例详细介绍
,怎么在广州志愿者网站注册?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
如何在云主机上快速搭建网站?
浅谈redis在项目中的应用
长沙企业网站制作哪家好,长沙水业集团官方网站?
详解CentOS6.5 安装 MySQL5.1.71的方法
如何在Windows服务器上快速搭建网站?
nginx修改上传文件大小限制的方法
MySQL查询结果复制到新表的方法(更新、插入)
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
高端网站建设与定制开发一站式解决方案 中企动力
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何在阿里云部署织梦网站?
网站制作免费,什么网站能看正片电影?
北京企业网站设计制作公司,北京铁路集团官方网站?
使用spring连接及操作mongodb3.0实例
免费网站制作appp,免费制作app哪个平台好?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
公司门户网站制作流程,华为官网怎么做?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Android GridView 滑动条设置一直显示状态(推荐)
如何快速配置高效服务器建站软件?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel如何创建自定义中间件?(Middleware代码示例)
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
EditPlus中的正则表达式 实战(1)
常州企业网站制作公司,全国继续教育网怎么登录?
Linux系统运维自动化项目教程_Ansible批量管理实战
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
三星网站视频制作教程下载,三星w23网页如何全屏?

