首页 > 后端开发 > C++ > 正文

如何在 C 中创建文件关联的注册表项?

Barbara Streisand
发布: 2024-11-24 00:24:13
原创
742 人浏览过

How Do I Create Registry Entries for File Association in C  ?

在 C 中创建文件关联的注册表项

简介

将您的应用程序与特定的集成文件类型需要通过注册表项将它们关联起来。这可确保双击支持的文件打开您的程序并将文件名作为参数传递。

第 1 步:注册 ProgID(文件类型)

在文件关联的核心是ProgID,它标识注册表中的文件类型。使用 SetValue 函数在 HKEY_CURRENT_USERSoftwareClasses 中创建 ProgID。

步骤 2:关联文件扩展名

接下来,将目标文件扩展名与 ProgID 关联。这是通过在 HKEY_CURRENT_USERSoftwareClasses 下创建一个扩展名为 ProgID 的子项并将其值设置为 ProgID 来实现的。

C 语言示例代码

#include <windows.h>  // Header for registry functions

// Register the ProgID
HKEY hkey;
LONG result = RegCreateKeyEx(HKEY_CURRENT_USER,
                            "Software\Classes\YourProgID",
                            0,
                            NULL,
                            REG_OPTION_NON_VOLATILE,
                            KEY_ALL_ACCESS,
                            NULL,
                            &hkey,
                            NULL);

// Set the value of the ProgID key
RegSetValueEx(hkey,
             NULL,
             0,
             REG_SZ,
             (const BYTE *)"Your Description",
             sizeof("Your Description") + 1);

// Associate the file extension
RegCreateKeyEx(HKEY_CURRENT_USER,
             "Software\Classes\.YourExtension",
             0,
             NULL,
             REG_OPTION_NON_VOLATILE,
             KEY_ALL_ACCESS,
             NULL,
             &hkey,
             NULL);

// Set the value of the extension key
RegSetValueEx(hkey,
             NULL,
             0,
             REG_SZ,
             (const BYTE *)"YourProgID",
             sizeof("YourProgID") + 1);
登录后复制

清理注意事项

卸载应用程序不会自动删除注册表项。为了防止孤立条目,请考虑在卸载过程中添加清理例程以删除关联的密钥。

其他资源:

  • MSDN:文件关联的最佳实践: https://docs.microsoft.com/en-us/windows/win32/shell/best-practices-for-file-associations
  • 文件类型和文件关联:https://docs.microsoft.com /en-us/windows/win32/shell/file-types-and-file-associations

以上是如何在 C 中创建文件关联的注册表项?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板