문제

특정 확장자 (예 : .JPG)와 연결된 응용 프로그램을 확인한 다음 해당 응용 프로그램에 대한 실행 파일이있는 위치를 확인하여 System.Diagnostics.Process.Start (...).

나는 이미 레지스트리를 읽고 쓰는 방법을 알고 있습니다.표준 방식으로 어떤 응용 프로그램이 확장과 연결되어 있는지, 표시 이름이 무엇인지, 실행 파일이있는 위치를 결정하기 어렵게 만드는 것은 레지스트리의 레이아웃입니다.

도움이 되었습니까?

해결책

샘플 코드 : 라코 디스

다른 팁

Anders가 말한 것처럼-IQueryAssociations COM 인터페이스를 사용하는 것이 좋습니다. 다음은 pinvoke.net의 샘플 입니다.

@aku : HKEY_CLASSES_ROOT \ SystemFileAssociations \ 를 잊지 마세요.

.NET에 노출되어 있는지 확실하지 않지만이를 처리하는 COM 인터페이스 (IQueryAssociations 및 친구)가 있으므로 레지스트리를 뒤지지 않고 다음 Windows 버전에서 변경되지 않기를 바랍니다.

또한 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \

. EXT \ OpenWithList 키 : "열기 너비 ..."목록 ( 'a', 'b', 'c', 'd'등 선택 항목에 대한 문자열 값)

. EXT \ UserChoice key for the "Always use the selected program to open this kind of file"( 'Progid'문자열 값 값)

모든 값은 키이며 위 예의 docName 과 동일한 방식으로 사용됩니다.

파일 형식 연결은 Windows 레지스트리에 저장되므로 Microsoft.Win32.Registry 클래스 는 어떤 파일 형식에 대해 등록 된 응용 프로그램을 읽습니다.

다음은 도움이 될 수있는 두 가지 도움말입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top