Windows에서 파일 형식에 대한 기본 응용 프로그램 찾기
개발자는 특정 파일 형식과 관련된 기본 응용 프로그램을 찾아야 하는 경우가 많습니다. 이는 특정 파일 확장자에 대한 기본 편집기 호출과 같은 작업에 중요합니다.
이를 달성하려면 System.Diagnostics.Process.Start를 사용하여 기본 애플리케이션에서 파일을 여는 것을 고려할 수 있습니다. 그러나 이 접근 방식은 제한적이며 비표준 확장자를 가진 파일을 열 수 없습니다.
신뢰할 수 있는 솔루션에는 Win32 API 함수 AssocQueryString을 사용하는 것이 포함됩니다. 이 함수를 사용하면 파일 형식과 연결된 기본 응용 프로그램에 대해 운영 체제를 쿼리할 수 있습니다.
C#에서 AssocQueryString을 활용하는 방법은 다음과 같습니다.
using System.Runtime.InteropServices; [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)] public static extern uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut ); [Flags] public enum AssocF { // ... } public enum AssocStr { // ... } public static string AssocQueryString(AssocStr association, string extension) { const int S_OK = 0; const int S_FALSE = 1; uint length = 0; uint ret = AssocQueryString(AssocF.None, association, extension, null, null, ref length); if (ret != S_FALSE) { throw new InvalidOperationException("Could not determine associated string"); } var sb = new StringBuilder((int)length); ret = AssocQueryString(AssocF.None, association, extension, null, sb, ref length); if (ret != S_OK) { throw new InvalidOperationException("Could not determine associated string"); } return sb.ToString(); }
AssocQueryString을 호출하고 원하는 연결을 지정하면 기본 애플리케이션의 전체 경로를 검색할 수 있습니다. 이를 통해 파일에 표준 확장자가 없더라도 특정 파일 형식에 대한 기본 편집기 또는 프로세서와 직접 상호 작용할 수 있습니다.
위 내용은 Windows에서 특정 파일 형식에 대한 기본 응용 프로그램을 프로그래밍 방식으로 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!