2010-05-17 3 views
1

저는 현대 Windows C++ 응용 프로그램이 Windows에서 파일 형식을 등록하는 방법을 조사했습니다 (C++: How do I correctly register and unregister file type associations for our application (programatically) 참조).Windows에서 제거 할 때 다른 사용자 계정에서 ProgID를 삭제하는 방법?

그리고 주제에 대한 다양한 MSDN 기사를 통해 빗질 한, 다음과 같이 될 나타나는 요약 :

  1. 설치 (상승) 글로벌 ProgID를 HKLM \ SOFTWARE \ 클래스를 등록해야합니다 \ 내 - (예 : HKLM \ Software \ Classes \ TextPad.text)
  2. 설치 관리자는 문서 유형 (예 : .myext)에 대한 기본 연결을 구성하고이를 HKLM의 앞에서 설명한 글로벌 ProgID로 지정합니다.
    참고 : 사용자는 모든 기본 연결을 수락하거나 설정할 연결을 사용자 지정할 수 있도록 여기에 사용자 인터페이스를 제공해야합니다.
  3. 실행중인 표준 (unelevated) 응용 프로그램은 현재 사용자가 설치 프로그램에서 사용할 수있는 것처럼 개인 연결을 설정할 수있는 UI를 제공해야합니다. 단, 이러한 연결은 HKCU \ Software \ Classes에 저장됩니다 (사용자별로 기계 당).
  4. UN 설치 관리자는 등록 된 모든 ProgID를 삭제해야합니다 (Windows는 누락 된 ProgID를 가리키는 연결을 처리 할만큼 스마트하고 MSDN에서 지정한 원하는 동작이므로 실제 파일 연결 만 남겨 두어야합니다).

# 4 : 제거 프로그램이 특정 사용자 계정에 대해 상승 실행되면 어떻게 다른 사용자에 대해 3 단계에서 생성 된 사용자 별 ProgID를 삭제합니까?

상승 모드에서도 제거 프로그램이 다른 사용자의 레지스트리 하이브로 이동하여 항목을 삭제할 수 없습니까? 아니면 할 수 있을까요? 그것은 주어진 각 사용자 하이브를 먼저로드해야합니까? 여기에 어떤 규칙이 있습니까?

어떤 통찰력을 주셔서 감사합니다.

편집 :

답변

1

방금 ​​알아 두었습니다. MS는 사용자별로 파일 매핑 자체를 재정의하는 것입니다. 즉 .foo -> what? 제거 프로그램에서 삭제 한 설치 프로그램에서만 생성해야하는 ProgID를 만들지 않아야합니다. MS가 명시 적으로 누락 한 ProgID에 매핑되는 "dangling ProgIDs"는 "매달린 파일 매핑"이 아닙니다.

전에 설치 : HKCR \ .txt 인 -> HKCR \ (글로벌)

후 설치 txtfile : HKCR \ .txt 인 -

사용자> HKCR \ MyEditor.text.1 (전역) .txt 파일을 TextPad에 매핑하려는 대신 다음을 선택합니다. HKCU \ Software \ Classes \ .txt -> HKCR \ TextPad.txt (이 사용자 만, 전역 적으로 .txt-> MyEditor.text).1) 제거 후

: HKCR \ .txt 인 x 축> HKCR \ MyEditor.text.1 (전역,하지만 키 HKCR \ MyEditor.txt.1가 삭제 된)

그리고 하나의 사용자 사람 .txt 포인트의 개별 사본이 유효하거나 또는 어느 쪽이든 마이크로 소프트가 처리하기 때문에 그들의 가치는 여전히 유효합니다.

나는 다른 사람들을 돕기를 바랍니다 ...

1

는 지금까지 내가 아는 한, 다른 사용자 계정의 설정은 일반적으로 그냥 남아 있습니다 (내 질문은 혼란에 설립되었습니다) 솔루션은 아래를 참조하십시오. 이것은 파일 형식 연결에만 국한되지 않습니다.

일부 계정은 현재 연결되어 있지 않은 도메인의 로밍 프로필이거나 로컬 관리자가 액세스 할 수 없기 때문에 모든 사용자 계정에서 설정을 삭제하는 것은 거의 불가능합니다.

+0

"정말로 * nice"가되고 싶다면 앱 실행 파일을 "사용자 별 제거 프로그램"으로 대체하십시오. 실행될 때 - 예. 사용자가 지금 삭제 한 앱을 사용하려고하면 사용자 설정이 정리됩니다. – MSalters

+0

어떻게 그런 일이 생길 것입니까? 설치하는 동안 현재 사용자의 레지스트리를 수정하고 제거 프로그램을 설치할 수 있지만 그 때 다른 사용자 계정의 설치 제거 프로그램을 설정할 수 없으면 단일 제거 프로그램이 다른 사용자 계정을 끝에 수정할 수 있습니다. – Mordachai

+0

@MSalters : 절대 제거되지 않는 매달림 제거 프로그램을 남겨 둡니다. – Thomas

관련 문제