동사 및 파일 연결

사용자가 파일과 같은 Shell 개체를 마우스 오른쪽 단추로 클릭하면 셸에 바로 가기(상황에 맞는) 메뉴가 표시됩니다. 이 메뉴에는 사용자가 항목에 대해 다양한 작업을 수행하기 위해 선택할 수 있는 명령 목록이 포함되어 있습니다. 이러한 명령을 바로 가기 메뉴 항목 또는 동사라고도 합니다. 바로 가기 메뉴를 사용자 지정할 수 있습니다.

이 항목은 다음과 같이 구성됩니다.

파일 시스템 개체의 바로 가기 메뉴 소개

바로 가기 메뉴는 파일 관리에 자주 사용되므로 셸은 파일 또는 폴더와 같은 파일 시스템 개체의 바로 가기 메뉴에 나타나는 잘라내 기 및 복사와 같은 기본 명령 집합을 제공합니다.

다음 예제에서는 MyFile.xyz-ms를 마우스 오른쪽 단추로 클릭하여 표시되는 기본 바로 가기 메뉴를 보여 줍니다.

기본 바로 가기 메뉴의 스크린샷

MyFile.xyz-ms에 대한 기본 바로 가기 메뉴가 표시되는 이유는 .xyz-ms가 등록된 파일 형식의 멤버가 아니기 때문입니다. 반면 .txt등록된 파일 형식입니다. .txt 파일을 마우스 오른쪽 단추로 클릭하면 위쪽 섹션에 인쇄, 편집 및 열기라는 세 가지 추가 명령이 있는 바로 가기 메뉴가 표시됩니다.

등록된 파일 형식의 파일에 대한 바로 가기 메뉴 스크린샷

파일 형식에 대한 바로 가기 메뉴를 확장하려면 각 명령에 대한 레지스트리 항목을 만들어야 합니다. 보다 정교한 방법은 파일별로 파일 형식에 대한 바로 가기 메뉴를 확장할 수 있는 바로 가기 메뉴(동사) 처리기를 구현하는 것입니다. 자세한 내용은 상황에 맞는 메뉴 처리기 만들기상황에 맞는 메뉴 참조를 참조하세요.

바로 가기 메뉴에 명령 추가

바로 가기 메뉴 처리기는 기존 바로 가기 메뉴에 명령을 추가하는 파일 형식 처리기입니다. 바로 가기 메뉴 처리기는 파일 형식과 연결되며 클래스의 멤버에 대한 바로 가기 메뉴가 표시될 때마다 호출됩니다. 셸은 레지스트리를 확인하여 파일 형식이 바로 가기 메뉴 처리기와 연결되어 있는지 확인합니다. 이 경우 셸은 처리기에서 추가 바로 가기 메뉴 항목을 쿼리합니다.

바로 가기 메뉴 동사

바로 가기 메뉴의 각 명령은 레지스트리에서 동사로 식별됩니다. 이러한 동사는 프로그래밍 방식으로 애플리케이션을 시작할 때 ShellExecuteEx 에서 사용하는 동사와 동일합니다.

동사는 셸에서 연결된 명령을 식별하는 데 사용되는 간단한 텍스트 문자열입니다. 각 동사는 콘솔 창 또는 일괄 처리(.bat) 파일에서 명령을 시작하는 데 사용되는 명령 문자열에 해당합니다.

예를 들어 열려 있는 동사는 일반적으로 프로그램을 실행하여 파일을 엽니다. 명령 문자열은 일반적으로 다음과 같습니다.

"My Program.exe" "%1"

명령 문자열의 요소가 공백을 포함하거나 포함할 수 있는 경우 따옴표로 묶어야 합니다. 그렇지 않으면 요소에 공백이 포함되어 있으면 올바르게 구문 분석되지 않습니다. instance 경우 "내 Program.exe"이 애플리케이션을 제대로 시작합니다. 따옴표 없이 내 Program.exe 사용하는 경우 시스템은 첫 번째 명령줄 인수로 Program.exe를 시작하려고 시도합니다. 문자열에 공백이 포함되지 않을 것이라고 확신할 수 없으므로 항상 셸에서 문자열로 확장되는 "%1"과 같은 인수와 함께 따옴표를 사용해야 합니다.

동사에는 동사 문자열 자체가 아니라 바로 가기 메뉴에 표시되는 표시 이름이 연결되어 있을 수도 있습니다. 예를 들어 openas의 표시 문자열은 Open With입니다. 일반 메뉴 문자열과 마찬가지로 표시 문자열에 앰퍼샌드 문자를 포함하여 명령을 키보드로 선택할 수 있습니다.

비 파일 시스템 항목 및 OpenSearch 결과를 스트리밍합니다.

Windows 7 이상에서는 OpenSearch 프로토콜을 통해 외부 원본을 Windows 클라이언트에 연결할 수 있습니다. 이렇게 하면 사용자가 원격 데이터 저장소를 검색하고 Windows Explorer 내에서 결과를 볼 수 있습니다. OpenSearch v1.1 표준은 클라이언트가 데이터 저장소에 대한 웹 서비스를 쿼리하는 방법과 서비스가 클라이언트에서 렌더링할 결과를 반환하는 방법을 설명하는 데 사용할 수 있는 간단한 파일 형식을 정의합니다.

OpenSearch 결과의 경우 항목을 다운로드할 필요가 없도록 비 파일 시스템 항목을 스트리밍해야 할 수 있습니다. 페더레이션 검색 기능을 사용하면 SharePoint 및 기타 웹 서비스 지원 사이트와 같이 OpenSearch를 지원하는 파일이 아닌 시스템 위치에서 항목을 검색할 수 있습니다. 이러한 항목에서 동사를 호출할 때 시스템은 임시 버전의 항목을 다운로드하고 동사 구현에 전달합니다. 동사 구현자는 동사가 항목을 스트리밍하기 위해 지원하는 URL 스키마 집합을 등록하여 파일을 다운로드할 필요가 없도록 하는 것이 좋습니다. 동사는 SupportedProtocols 레지스트리 키를 사용하여 이 작업을 수행합니다.

임의의 파일 형식을 처리하는 애플리케이션 등록

특정 파일 형식에 대한 바로 가기 메뉴 항목을 정의하면 연결된 애플리케이션이 파일 형식의 멤버를 여는 방법을 지정할 수 있습니다. 그러나 애플리케이션은 사용자가 애플리케이션을 사용하여 애플리케이션과 연결되지 않은 파일 형식을 열려고 할 때 사용할 별도의 기본 프로시저를 등록할 수도 있습니다. 바로 가기 메뉴 항목을 등록하는 것과 거의 동일한 방식으로 기본 프로시저를 등록합니다. 바로 가기 메뉴 항목 정의에 대한 자세한 내용은 상황에 맞는 메뉴 처리기 만들기를 참조하세요.

기본 프로시저는 두 가지 기본 용도로 사용됩니다. 하나는 임의의 파일 형식을 열기 위해 애플리케이션을 호출하는 방법을 지정하는 것입니다. instance 경우 명령줄 플래그를 사용하여 알 수 없는 파일 형식이 열려 있음을 나타낼 수 있습니다. 다른 목적은 바로 가기 메뉴 항목 및 아이콘과 같은 파일 형식의 다양한 특성을 정의하는 것입니다. 사용자가 애플리케이션을 추가 파일 형식과 연결하는 경우 해당 클래스는 이러한 특성을 갖습니다. 추가 파일 형식이 이전에 다른 애플리케이션과 연결되었으면 이러한 특성이 원본을 대체합니다.

기본 프로시저를 등록하려면 애플리케이션의 ProgID에 대해 만든 것과 동일한 레지스트리 키를 애플리케이션의 HKEY_CLASSES_ROOT\Applications하위 키 아래에 배치합니다. FriendlyAppName 값을 포함하여 시스템에 애플리케이션에 친숙한 이름을 제공할 수도 있습니다. 애플리케이션의 식별 이름은 실행 파일에서 추출될 수도 있지만 FriendlyAppName 값이 없는 경우에만 추출할 수 있습니다.

다음 샘플 레지스트리 항목에서는 이름 및 몇 가지 바로 가기 메뉴 항목을 정의하는 MyProgram.exe 대한 기본 절차를 보여 줍니다. 명령 문자열에는 애플리케이션이 임의의 파일 형식을 열고 있음을 알리는 /a 플래그가 포함됩니다. DefaultIcon 하위 키를 포함하는 경우 제네릭 아이콘을 사용해야 합니다.

HKEY_CLASSES_ROOT
   MyProgram.exe
      shell
         open
            command
               (Default) = C:\MyDir\MyProgram.exe /a "%1"
         print
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1"
         printto
            command
               (Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"

추가 리소스

바로 가기 메뉴 처리기 및 여러 선택 동사에 대한 모범 사례

바로 가기 메뉴에 대한 정적 또는 동적 동사 선택

바로 가기 메뉴 처리기 만들기

동적 동사를 사용하여 바로 가기 메뉴 사용자 지정

바로 가기(상황에 맞는) 메뉴 및 바로 가기 메뉴 처리기

바로 가기 메뉴 참조