2013-02-25 12 views
3

Visual Studio 패키지에 키보드 바로 가기를 한 번만 추가하고 싶습니다. 기본적으로 나는 예를 들어, 패키지 코드에서 작업을 수행하는 방법을 알고VSIX 패키지 설치시 키 바인딩 코드를 등록하는 방법

이 문제가
var dte = GetGlobalService(typeof(DTE)) as DTE2; 
if (dte != null) 
{     
    dte.Commands.Item("Tools.Something").Bindings = "Global::Ctrl+T, Ctrl+S"; 
} 

, 내가 한 번만 코드를 호출하고 싶습니다 (I 패키지 클래스 생성자에서이 코드를 실행하지 않으려는 VS 재시작 후 패키지가 처음 사용될 때마다 실행되기 때문에).

어떻게 만드시겠습니까? 키 발견하는 경우

답변

3

지난 번에 내가 알지 못했던 또 다른 방법이 있습니다. 모든 작업을 수행하려면 * .vsct 파일에 키 바인딩을 추가해야합니다. 그러면 단축키가 등록되고 선택한 명령에 바인딩됩니다.

<KeyBindings> 
    <KeyBinding guid="guidSomehingCmdSet" id="cmdidSomehing" editor="guidVSStd97" mod1="Control" mod2="Control" key1="T" key2="S" />  
</KeyBindings> 
0
  • 확인 레지스트리 키 패키지 초기화의 모든 시간() 함수
  • 키 코드를 레지스트리 키를 생성하고 실행 존재하지 않는 경우
  • , 코드를 실행하지 않는

예 : 1. 원하는 위치에서 "Test"키를 확인하십시오. 2. "Test"키가 없으면 레지스트리에 해당 키를 작성하고 코드를 실행하십시오. 3. "Test"키가 발견되면 실행하지 마십시오 귀하의 코드

+0

패키지 설치/VS에 추가해야합니다. 패키지 코드 자체는 아닙니다. – jwaliszko

2

먼저 확장 프로그램을 공개적으로 배포하려는 경우 일부 사용자의 기존 바인딩을 방해 할 가능성이 매우 높으므로 바인딩을 제거해야합니다.

두 번째로 자동화 인터페이스를 통하지 않고 Visual Studio Command Table의 일부로 명령과 바인딩을 제공하십시오. 명령은 패키지가 설치 될 때 아무 코드도 실행할 필요가없는 [ProvideMenuResourceAttribute] 속성을 사용하여 등록됩니다.