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

时间: 2024-09-20 08:52:00

VC 实现文件关联的相关文章

使用VC取得文件关联图标的方法

一个简单的学习加强实例,用VC取得文件的关联图标,看下面的代码一起来学习下! CFileDialog fileDialog( TRUE,"*.*",NULL,NULL,NULL); if (fileDialog.DoModal() != IDOK) return; CString str= fileDialog.GetFileExt(); str="."+str; SHFILEINFO sfi; SHGetFileInfo(str,0,&sfi,sizeof

vc 文件关联-怎样用VC6.0让JPG与GIF图片的文件可以文件关联到我的程序,右键可以选择我的程序打开

问题描述 怎样用VC6.0让JPG与GIF图片的文件可以文件关联到我的程序,右键可以选择我的程序打开 请问一下怎样用VC6.0实现注册表代码让JPG与GIF图片的文件可以文件关联到我的程序,也就是右键可以选择我的程序打开,并且出现在"打开方式"的选择项里 以下是我在网络搜索的txt文件关联的代码,测试后可以用,可是改成JPG与GIF就无法用了,注册表里的项目很多,不知道JPG与GIF的代码怎么写,最好有测试后可以用的全代码发一下啊,我的是XP的系统 关联自己的应用程序到右键菜单中在Wi

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

本文实例讲述了VC++实现文件与应用程序关联的方法.分享给大家供大家参考,具体如下: 日常工作中,doc文件直接双击后,就能启动word软件,并读取该文档的内容在软件中显示,这都得益于注册表的配置,我们的软件也需要实现这样的功能,该如何写注册表以及写入哪些内容呢?下面的两个函数就能实现这个功能.CheckFileRelation是检查注册表中是否已经将我们期待的文件格式与相应软件关联了:RegisterFileRelation是直接往注册表中写入相关的key和value. /**********

VC文件关联小结

最近的工程中要用到了vc中关于文件关联的操作,费了不少周折,这里就简单做一个小结. (1)使用EnableShellOpen自动完成注册表的注册信息 这种情况下,只需要在CWinApp子类的InitInstance函数中添加如下代码就行 // Enable DDE Execute open EnableShellOpen(); RegisterShellFileTypes(TRUE); 通常情况下,也有加上这句的必要 // Enable drag/drop open m_pMainWnd->Dr

vc菜单项关联图标,下拉工具栏

问题描述 vc菜单项关联图标,下拉工具栏 今天碰到一个问题:我用CDockablePane类模拟了mfc向导创建的单文档的类视图停靠栏,但是我看了半天没找到停靠栏上第一个下拉工具栏的图标是怎么安上去的.我的理解是:创建popup menu时就关联上图标,于是我从winword.exe文件中导出一个图标,但又出现一个问题:这个图标怎么有那么多不同型号,有32*32 4位, 16*16 8位...先不管,给菜单关联图标,我又有一个问题,找了CMenu的成员,好像只有CBitmap可以关联,那icon

XP系统手动制作exe文件关联修复器的方法

XP系统手动制作exe文件关联修复器的方法   新建文本文档电脑常识 XP系统制作exe文件关联修复器的方法: 1.在桌面上空白处鼠标右键,弹出的快捷菜单指向"新建",在下一级菜单中选择"文本文档"; 2.打开新建的文本文档,将下面的代码复制进去: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTexefile] @="应用程序" "EditFlags"=hex:3

注册表的文件关联及应用

喜欢使用Windows右键快捷菜单的朋友可能知道,当你选择了一个文件(或者是文件夹或是系统图标)再单击鼠标右键,系统就会弹出一个菜单,菜单上面的各种"功能"(或称"操作")任你选择,但是你是否注意到,当你安装一些应用软件之后,你的右键菜单是不是膨胀,以winzip为例,安装winzip之后,文件或文件夹的右键菜单当中就增加了功能选择项"Add to Zip"和"Add to xxx.zip",如图一,看到这个变化,我们不禁要问

用Ftype命令修复exe文件关联

有次朋友电脑中了病毒,我去看了一下,是个QQ病毒,由于挺长时间没有上网搜集病毒方面消息了,我对这些病毒的特性也不甚了解.我先打开"进程管理器",将几个不太熟悉的程序关闭掉,但刚关掉一个,再去关闭另外一个时,刚才关闭的那个马上又运行了.没办法,我决定从注册表里先把启动项删除后,再重启试试,结果,我刚把那些启动项删除,然后刷新一下注册表,那些启动项又还原了,看来一般的方法是行不通了,上网下载专杀工具后,仍然不能杀掉.我知道这是因为病毒正在运行,所以无法删除. 由于这台电脑只有一个操作系统,

更改Windows XP系统中的文件关联

您可以指定总是使用同一个程序打开具有特定文件扩展名的文件.也可以修改现有文件类型,以更改它与程序的关联.您可以在Windows资源管理器或"我的电脑"中处理文件关联.本文介绍如何在Windows XP中更改文件关联. 如何更改文件关联 您可能希望将某一文件扩展名的关联从一个程序更改为另一个程序.例如,您可能想用您最喜欢的字处理器打开文本文件 (.txt),以便设置文本的格式.默认情况下,文本文件与 Microsoft 记事本关联.默认情况下,已知文件类型的文件扩展名是隐藏的. 查看所有