다음을 통해 공유


리디렉션된 문자열 찾기

이 항목에서는 리디렉션된 레지스트리 문자열을 찾기 위한 프로그래밍 지침에 대해 설명합니다. 자세한 내용은 레지스트리 문자열 리디렉션 사용하여참조하세요.

Language-Neutral 레지스트리 값 로드

Windows Vista 이상에서 MUI 애플리케이션은 언어 중립적 레지스트리 값을 사용하여 문자열 리소스 테이블에 저장된 언어별 문자열에 대한 액세스를 허용합니다. 자세한 내용은 레지스트리 문자열 리디렉션 사용하여Language-Neutral 리소스 만들기를 참조하세요.

레지스트리에서 언어 중립적 값을 읽는 애플리케이션 코드는 RegLoadMUIStringW호출하여 올바른 사용자 인터페이스 언어로 문자열을 로드해야 합니다. 이 함수를 사용하는 경우 애플리케이션은 리소스 로드를 명시적으로 처리할 필요가 없습니다.

기존 애플리케이션을 레지스트리의 언어 중립적 사용으로 업데이트하는 경우 일반적으로 기존 문자열 값을 영어 또는 레지스트리의 다른 단일 언어로 지역화하여 대체 및 이전 버전과의 호환성을 유지합니다. 레지스트리에 리터럴 문자열을 유지하면 RegLoadMUIStringW 호출에 실패하는 경우 애플리케이션이 리터럴 문자열로 대체됩니다. MUI가 이러한 구현을 지원하지 않는 경우 이러한 대체를 구현하는 방법을 결정해야 합니다.

셸 API를 사용하여 레지스트리에서 바로 가기 문자열 설정

애플리케이션은 셸 API를 사용하여 시작 메뉴 또는 바탕 화면에서 파일 또는 폴더를 연결하는 바로 가기에 대한 문자열을 만들 수 있습니다. 자세한 내용은 레지스트리 문자열 리디렉션 사용하여바로 가기 문자열에 대한 리소스 만들기를 참조하세요.

애플리케이션은 SHSetLocalizedName 사용하여 바로 가기에 대한 MUI 규격 표시 이름을 로드할 수 있습니다. IShellLink::SetDescription을 사용하여 연결된 InfoTip을 설정해야 합니다. 호출은 레지스트리에 문자열을 등록합니다. "HKCR"이 HKEY_CLASSES_ROOT 레지스트리 키를 나타내는 다음 예제를 살펴보겠습니다.

HKCR,"CLSID\%CLSID_AntiSpyware%",,,"Windows AntiSpyware"

HKCR,"CLSID\%CLSID_AntiSpyware%","LocalizedString",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-104"

HKCR,"CLSID\%CLSID_AntiSpyware%","InfoTip",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-208"

첫 번째 줄은 대체 및 이전 버전과의 호환성을 위해 지역화되지 않은 리터럴 문자열을 제공합니다. 두 번째 줄에는 표시 이름을 등록하는 MUI 규격 방법이 표시됩니다. 이 줄은 Msascui.exe(Windows XP의 경우) 또는 관련 언어별 파일(Windows Vista의 경우)에 저장된 문자열 식별자 104를 나타냅니다. 이 문자열 식별자는 "내 네트워크 위치"에 해당합니다. 예제의 세 번째 줄은 InfoTip 등록을 처리합니다. %CLSID_AntiSpyware% 이 구성 요소의 클래스 식별자와 일치하는 GUID를 나타내는 환경 변수를 지정합니다.

위에 표시된 예제에서 애플리케이션은 SHSetLocalizedName 호출하여 처음 두 매개 변수의 실행 파일 경로를 지정하고 idsRes "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104"로 지정합니다. IShellLink::SetDescription대한 호출은 InfoTip의 경로를 "@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208"로 지정합니다.

레지스트리에서 친숙한 문서 형식 이름 쿼리

친숙한 문서 유형 이름을 위한 리소스 생성은 레지스트리 문자열 리디렉션 을 사용하여에서 논의됩니다. 친숙한 문서 이름을 쿼리하려면 애플리케이션에서 IQueryAssociations::Init사용하고 IQueryAssociations::GetString호출해야 합니다. IQueryAssociations::Init 호출은 문서 형식(예: ".txt")을 지정합니다. IQueryAssociations::GetString 호출은 ASSOCSTR_FRIENDLYDOCNAME 문자열 식별자로 지정해야 합니다.

레지스트리에서 읽지 않는 Microsoft 관리 콘솔 스냅인 문자열 등록

애플리케이션은 MMC(Microsoft Management Console) 스냅인을 사용하여 관리 작업을 호스트할 수 있습니다. 대부분의 문자열은 Microsoft 관리 콘솔용 문자열 리소스 만들기 Snap-Ins 및 레지스트리 문자열 리디렉션 에서 설명된 레지스트리 설정을 사용하여 리소스로 처리됩니다. 그러나 일부 스냅인은 MMC가 레지스트리에서 읽을 수 없는 레지스트리 문자열 값을 등록합니다. 이 경우 스냅인은 MUI와 호환되는 ISnapinAbout 인터페이스를 사용하여 값을 가져와야 합니다.

레지스트리에서 Windows 서비스에 대한 표시 이름 및 설명 설정

MUI 애플리케이션이 Windows 서비스를 사용하는 경우 서비스 표시 이름 및 설명을 표시해야 합니다. 연결된 리소스는 레지스트리 문자열 리디렉션 사용하여"Windows 서비스에 대한 문자열 리소스 만들기"에서 설명합니다.

서비스 표시 이름을 설정하기 위해 MUI 애플리케이션은 CreateService또는 ChangeServiceConfig호출합니다. 이름은 "@<PE-path>,-<stringID>[;<comment>]" 형식의 문자열입니다. 예를 들어 서비스가 경로 %ProgramFiles%\%MyPath%\MyDll.dll있는 .dll 파일에 의해 구현되고 언어별 표시 이름의 문자열 식별자가 347인 경우 매개 변수는 "@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347"로 지정됩니다. C/C++는 백슬래시를 문자열의 이스케이프 문자로 사용하므로 이중 백슬래시(\\)가 필요합니다.

언어별 서비스 설명을 설정하려면 MUI 애플리케이션은 SERVICE_DESCRIPTION 구조체의 lpDescription 멤버가 "@<PE-path>,-<stringID>[;<comment>]형식의 문자열을 나타내고 적절한 문자열 식별자를 참조하도록 해야 합니다. 그런 다음 애플리케이션은 매개 변수 dwInfoLevel이 SERVICE_CONFIG_DESCRIPTION으로 지정되고, 매개 변수 lpInfoSERVICE_DESCRIPTION 구조체로 지정된 상태로 ChangeServiceConfig2을 호출합니다.

Win32 PE 리소스 찾기

레지스트리 문자열 리디렉션 사용