`
mybwu_com
  • 浏览: 177476 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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);
}

分享到:
评论

相关推荐

    关联规则 挖掘实现VC

    本程序是数据挖掘中的本程序是数据挖掘中的关联规则模型中著名的Aprior算法的VC实现程序,可用于知识发现、数据挖掘、人工智能、模式识别等领域(请先解压文件)模型中著名的Aprior算法的VC实现程序,可用于知识发现...

    VC资源管理器及添加注册表关联图标

    1,实现了类似于windows资源管理器的基本功能 2,能够将程序添加到注册表里,默认关联文件格式为.test 3,自动更改.test文件图标

    VC++实现文件与应用程序关联的方法(注册表修改)

    主要介绍了VC++实现文件与应用程序关联的方法,涉及VC++针对注册表的相关操作技巧,需要的朋友可以参考下

    Aprior算法的VC实现程序

    本程序是数据挖掘中的关联规则模型中著名的Aprior算法的VC实现程序,可用于知识发现、数据挖掘、人工智能、模式识别等领域(请先解压文件)

    VC 资源管理器-无限级树型菜单.rar

    一个比较早的代码了,VC 资源管理器-无限级树形菜单,本程序所用压缩函数库在子目录zipfunc中,在zipfunc目录下,有两个子目录分别包含Release版和...文件关联的实现可以对生成的数据文件使用打开方式关联,一次就OK了.

    TabBars---VC6 IDE增强插件

    如果选择了“压缩完成后打开文件确认”选项,“TabBars”会在打包完成后自动调用zip文件的关联软件打开生成的压缩包,以确认是否正确生成了压缩文件。 十一 从zip压缩文件中打开VC工程 通常从网上下载的例子代码...

    VC6风格界面

    ...................\图像平滑滚动效果的VC实现.doc ...................\在(CListView)列表视图中添加右键菜单.doc ...................\在ATL Browser Helper对象中使用WTL TreeView.doc ...................\...

    VC++实现添加文件关联的方法示例

    主要介绍了VC++实现添加文件关联的方法,涉及VC++针对注册表的写入与VC事件响应相关操作技巧,需要的朋友可以参考下

    用vc编写简单操作系统教程

    用vc编写操作系统,你也可以做的到 CCriticalSection csDocLock; //文件锁保证读写互斥 CCriticalSection csReadCount; //读者记数互斥 CCriticalSection csPreWriteLock;//写者优先锁 int g_iReadCount = 0; bool ...

    VC学习大纲 VC学习讲义

    VC工程的编译原理与过程,将工程中不同的类拆分到不同的原文件中,每一个类由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析MFC Appwizard生成的工程奠定了良好...

    vc实例精通源码,windows基本控件的使用Demo

    08_CaptureVideo 在VC中实现视频采集及截图功能。 第17章(\ Chapter17) 示例描述:本章介绍VC6在ActiveX方面的应用技术。 01_MyActiveX 创建ActiveX控件。 02_MyActiveX2 为ActiveX控件增加属性和方法。...

    vc++ 应用源码包_6

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    VC/C++的旅游管理系统

    这是一个在VC/C++平台上编写旅游管理系统,包含完整的相关文件;还有Database文件夹,其中有相关联的数据库文件。

    收集一些VC++.net 文件操作实例

     如何实现文件与程序建立关联  如何读写独立存储文件  如何制作TIFF多帧图像文件  如何增加或移除文件访问权限  如何压缩和解压缩大尺寸文件  如何使用缓冲流复制文件  还有更多就不列举了,请下载后查看……

    VC FlexGrid导出Excel

    7、添加ColorButton.h和ColorButton.cpp的实现代码 8、"导出Excel"按钮关联类型为CColorButton的变量(Vaiable Type:CColorButton):m_btn1 9、右键点击ProjectX resources->引入:文件类型选择所有文件,依次引入5...

    单文档中建立多种不同视图来实现

    多视图是VC开发中经常要用到的技术之一,一般地实现单文档多视图有三种方式(1)通过视图分割的技术(使用CSplitterWnd实现),将窗口分割为多个部分,每个部分显示各自显示不同的视图,这种技术实现起来比较简单,...

    使用VC++的网络编程总结与编程实现

    对于套接字,存档并不附加到标准的 CFile 对象(通常与磁盘文件关联),而是附加到 CSocketFile 对象。CSocketFile 对象不是连接到磁盘文件,而是连接到 CSocket 对象。 一个 CArchive 对象管理一个缓冲区。当存储...

    浮云E绘图源码中级Demo_关联业务对象_动态更新状态(可复用绘图软件源码开发)

    实现多种业务数据(按Type、按Title或者按Name等)方式的关联业务系统对象,并实时更新图形的展现形式(线、区域、文字、图片的颜色、粗细、风格等) 使用浮云E绘图二次开发的流程: 1. 先使用浮云E绘图编辑器.exe...

    vc++ 应用源码包_1

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

Global site tag (gtag.js) - Google Analytics