2016-08-09 6 views
0

C#을 사용하여 데스크톱 응용 프로그램을 개발하고 Inno 설치 컴파일러를 사용하여 설치 프로그램을 만듭니다.관리자 권한없이 Inno Setup을 사용하여 HKLM에서 레지스트리 키를 만드는 방법

나 응용 프로그램의 기능을 설명하자,

내가 (관리자/비 관리자 PC에 설치할 수있는 즉, 응용 프로그램) 모든 사용자 이노 설정을 사용하는 응용 프로그램 설정을 만들었습니다
  1. .

    //all user 
    PrivilegesRequired=lowest 
    
  2. 응용 프로그램을 설치하는 동안

    , 나는 HKLM에서 레지스트리 키를 만들려고합니다. 응용 프로그램 레지스트리 키는이

    --------------------------- 
    Error 
    --------------------------- 
    Error creating registry key: 
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TestKey 
    
    RegCreateKeyEx failed; code 5. 
    
    Access is denied. 
    
    Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation. 
    

이 제발 도와주세요 예외 아래에 발생 작성하지 설치하는 동안이를 위해 내가 어떻게 만들 수

[Registry] 
Root: HKLM; Subkey: "SOFTWARE\Wow6432Node\TestKey"; Permissions: users-modify; \ 
    Flags: uninsdeletekey createvalueifdoesntexist; ValueType: string; \ 
    ValueName: "SOAPAddress"; ValueData: "ABC" 
  • 아래로 이노 설치 스크립트에서 레지스트리 키를 추가 한 Inno Setup 컴파일러를 사용하여 HKLM의 레지스트리 키.

    VS2010에서 레지스트리 키를 만들었지 만 관리자가 아닌 PC를 설치할 수 없습니다.

    미리 감사드립니다.

  • 답변

    3

    HKLM에 글을 쓰려면 관리자 권한이 필요합니다. 따라서 PrivilegesRequired=lowest을 사용할 수 없습니다.

    HKLM에 사용자 쓰기 가능 키를 만드는 것은 좋지 않습니다.


    그것은 당신이 "관리자/비 관리자 PC에 설치할 수있는 응용 프로그램"무슨 뜻인지 정말 분명하지 않다,하지만 어쩌면 당신은 실제로이 찾고 있습니다 :
    Make Inno Setup installer request privileges elevation only when needed.

    +0

    감사합니다. 모든 사용자 (관리자 권한 사용자 및 일반 사용자 시스템)에 설치할 수있는 응용 프로그램 설정을 만들고 싶습니다. 설치 관리자가 HKLM에 레지스트리 키를 쓸 수 있습니다. –

    +1

    우리는 그것을 이해했습니다. 그러나 다시 한번,'HKLM'에 글쓰기 위해서는 관리자 권한이 필요합니다. 따라서 관리자가 아닌 사용자가 실행할 수있는 인스톨러를 가질 수는 없지만'HKLM'에 쓸 수 있어야합니다. 이는 Windows 보안의 기본 원칙입니다. –

    +0

    빠른 응답을 보내 주셔서 감사합니다. 그에 따라 변경 될 것입니다. –

    관련 문제