`
testcs_dn
  • 浏览: 113955 次
  • 性别: 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实现的关联规则程序

    这个“VC实现的关联规则程序”是使用微软的Visual C++(简称VC)编程环境开发的一个工具,它允许用户探索和理解数据集中不同项之间的关联性。下面我们将详细探讨关联规则的概念以及VC环境下实现它的技术细节。 关联...

    VC6.0的图标关联

    2. **文件扩展名关联**:接着,需要在`HKEY_CLASSES_ROOT\.cpp`下创建一个字符串值,名为`@`,其值为`cppfile`,这将`.cpp`文件关联到我们之前创建的`cppfile`键。 3. **操作系统的Shell菜单**:为了在右键菜单中...

    文件关联代码

    3. VC编程实现文件关联: 使用Visual C++,开发者可以编写代码来读取、修改或创建新的文件关联。这通常涉及到以下步骤: - 使用`RegCreateKeyEx`、`RegOpenKeyEx`函数来访问或创建注册表键。 - 使用`...

    VC关联文件

    5. **编程实现**:在VC++环境中,可以使用API函数如`ShellExecuteEx`来实现文件关联。例如,通过调用`ShellExecuteEx`的`lpVerb`参数设置为`"open"`,`lpFile`参数设置为`.ping`文件路径,`lpApplicationName`参数...

    vc实现获取文件图标

    每个文件在系统中都有一个关联的扩展名,操作系统通过查看注册表或文件类型关联来确定用于表示该文件类型的图标。Windows API提供了一组函数来获取这些图标,主要包括`SHGetFileInfo`和`ExtractIcon`等。 1. **...

    VC++建立文件关联的方法(VC.net)

    在VC++.net中,创建文件关联是为特定的文件扩展名指定一个应用程序的过程,使得当用户双击该类型的文件时,系统会自动调用你指定的程序来打开它。这通常用于开发桌面应用程序,比如当你创建了一个新的文本编辑器,你...

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

    开发者或学习者可以通过查看和分析这些文件,理解如何在VC环境中实现自定义资源管理器,以及如何操作注册表进行文件关联和图标修改。 总之,“VC资源管理器及添加注册表关联图标”是一项涉及多方面技能的任务,包括...

    vc 实现文件传输

    在本文中,我们将深入探讨如何使用VC++编程语言和Winsock库来实现文件的网络传输。Winsock,简称为Windows套接字,是Microsoft Windows操作系统中的一个API,它提供了网络通信的基本功能,允许应用程序进行TCP/IP...

    vc获得所有经过关联的文件类型的图标.zip

    在编程领域,尤其是使用C++(如Visual C++,简称VC)时,开发者有时需要获取这些关联文件类型的图标,以便在自定义程序中使用。"vc获得所有经过关联的文件类型的图标.zip"是一个资源包,包含了一个示例项目,用于...

    vc文件管理器

    "VC文件管理器"是一款基于Microsoft Visual C++(VC++)开发的小型应用程序,它利用MFC(Microsoft Foundation Classes)库来构建用户界面和实现文件管理功能。MFC是微软提供的一套C++类库,它封装了Windows API,...

    VC修改文件图标

    在Windows操作系统中,文件的图标通常与文件关联的程序有关,这些信息存储在注册表中。VC++(Visual C++)是一种常用的C++集成开发环境,可以用来编写能够修改注册表并实现文件图标更改的程序。这个“VC修改文件图标...

    VC.net 设置文件建立关联的源代码.rar

    通过这段源代码,新手可以学习到如何在实际项目中实现文件关联功能,并了解注册表在Windows操作系统中的重要性。 总之,通过学习和理解这份"VC.net 设置文件建立关联的源代码",开发者能够掌握在VC.NET环境中如何...

    vc++注册表文件关联,图标关联

    总结,VC++注册表文件关联和图标关联的实现涉及到对Windows注册表的读写操作,通过创建和修改特定的注册表键值来达到目的。在实际项目中,需要注意安全性和稳定性,确保操作无误,同时考虑用户界面的友好性,提供...

    vc实现文件夹从一个目录下拷贝到另一个目录

    ### VC实现文件夹从一个目录下拷贝到另一个目录 #### 概述 在软件开发过程中,经常需要处理文件及文件夹的操作,如复制、移动等。本文将详细介绍如何使用Visual C++(简称VC)来实现文件夹从一个目录复制到另一个...

    Apriori算法(vc实现)

    本项目是将Apriori算法用VC实现,结合Access数据库进行数据处理。 首先,我们需要理解Apriori算法的基本原理。该算法基于两个核心思想:频繁项集的封闭性和先验性。频繁项集是指在数据集中出现次数超过预设阈值的项...

    VC 文件锁定检查程序.rar

    8. **学习资源**:对于学习VC++和系统编程的初学者,这样的源码可以作为实践案例,学习如何使用Windows API进行系统级操作,以及如何设计和实现文件锁定检测的逻辑。 总结:VC 文件锁定检查程序是一个有价值的教育...

    用VC实现基于DXF文件的AutoCAD数据共享接口

    在实现基于DXF文件的AutoCAD数据共享接口时,选择了使用Visual C++语言进行开发,利用其强大的功能来读取DXF文件,并在自主开发的应用软件与AutoCAD软件之间建立共享数据通道。在这个过程中,首先需要了解DXF文件的...

    VC6,VC2005的MFC文件复制模板

    2. **File.clw**:类视图文件,记录了MFC类的组织和关联,帮助IDE管理类关系。 3. **FileDlg.cpp, File.cpp**:这是两个源代码文件,分别可能包含`FileDlg`对话框类和主要的`File`类的实现。 4. **StdAfx.cpp**:预...

    用VC实现的本地MP3文件播放器

    《使用VC实现本地MP3文件播放器的详细解析》 在计算机编程领域,尤其是音频处理方面,开发一个本地MP3文件播放器是一项基础且实用的任务。本文将详细讲解如何使用Visual C++(简称VC)来实现这样的播放器,以及在这...

    VC读取3DS文件实例

    本实例将详细介绍如何在VC环境下实现3DS文件的读取,以及如何将其转化为可在游戏中使用的3D模型。 首先,了解3DS文件格式是必要的。3DS文件存储了3D对象的信息,包括顶点、面、纹理坐标、颜色、材质和动画等。为了...

Global site tag (gtag.js) - Google Analytics