5

해결되었습니다! 내 문제는 사용자가 내 응용 프로그램을 설치 한 위치를 알고 어떻게응용 프로그램이 설치된 hkey_classes_root 키에 값을 추가하는 방법

시작 :

나는 그들이 방문하거나 MyApp를에 링크를 클릭하면 내 응용 프로그램을 시작합니다 내 응용 프로그램의 사용자 정의 URL 프로토콜을 만들려고하고 있습니다. 레지스트리에 HKEY_CLASSES_ROOT를 등록 할 때 msi 설치 관리자가 위치를 지정할 수 있습니까?

HKEY_CLASSES_ROOT 
    myapp 
     (Default) = "URL:myapp Protocol" 
     URL Protocol = "" 
     DefaultIcon 
      (Default) = "myapp.exe,1" 
     shell 
      open 
       command 
        (Default) = "C:\Program Files\MyAppFolder\MyApp.exe" "%1" 

내가 경로 변경을 원했습니다 "C : 프로그램 파일 \를 \ 경우 MyAppFolder \ MyApp.exe의"사용자가 설치 과정에서 내 응용 프로그램을 설치 한 곳.

해결

HKEY_CLASSES_ROOT 
    myapp 
     (Default) = "URL:myapp Protocol" 
     URL Protocol = "" 
     DefaultIcon 
      (Default) = "myapp.exe,1" 
     shell 
      open 
       command 
        (Default) = "[TARGETDIR]MyApp.exe "%1"" 

[TARGETDIR] 자동으로 사용자가 예를 들어 파일의 설치 장소 변경됩니다 "C : \ 프로그램 파일 \ 경우 MyAppFolder \"자세한 내용은

이 링크를 클릭 - 레지스트리 키를 생성 할 때> Registering an Application to a URI Scheme

+0

MSI를 만들기 위해 무엇을 사용하고 있습니까? –

+0

Visual Studio 2010의 일반 설치 프로젝트 –

+0

아마 -하지만 설치 패키지 작성에 사용하는 특정 기술을 알아야합니다. –

답변

3

은 Visual Studio 설치 프로젝트를, 당신은 [TARGETDIR] 변수를 사용할 수 있습니다.

이 변수는 응용 프로그램이 설치된 대상 디렉토리에 자동으로 설정되며, .exe 파일을 끝에 붙이면됩니다.

+0

이게 이런가요? (기본값) = "[TARGETDIR] \ MyApp.exe" "% 1" –

+0

VS2010이 없지만 [이 질문] (http://stackoverflow.com/questions/1782492/installer- custom-action-problem-cant-write-to-register-key) 같은 일을하고있다. 외모로 보면 .reg 파일이 있습니까? 이것으로는 작동하지 않습니다. –

+0

** 대기 **, [this site] (http://codinglight.blogspot.co.uk/2008/08/installing-startup-registry-key-in.html)가 더 좋습니다. –