>백엔드 개발 >C++ >C에서 파일 연결을 위한 레지스트리 항목을 어떻게 생성합니까?

C에서 파일 연결을 위한 레지스트리 항목을 어떻게 생성합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-24 00:24:13800검색

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로 설정함으로써 달성됩니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.