Windows でファイル タイプのデフォルト アプリケーションを取得する
特定のタイプのファイルを開くためのデフォルト アプリケーションを決定するには、以下を利用できます。 Windows レジストリ。 HKEY_CLASSES_ROOT では、各ファイル拡張子に対応するキーがあります。デフォルトのアプリケーションは、このキーのデフォルト値に保存されます。
HTML ファイルを開くための次の例を考えてみましょう:
ただし、このメソッドには制限があります。これはレジストリの実装に依存しており、Windows のバージョンによって異なる場合があります。より信頼性の高いアプローチには、Win32 API 関数 AssocQueryString が含まれます。
AssocQueryString
AssocQueryString を使用すると、特定のファイルのデフォルト アプリケーションをクエリできます。 type.
構文:
uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut );
フラグ:
Str:
例:
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 ); AssocF flags = AssocF.Open_ByExeName; AssocStr str = AssocStr.Command; StringBuilder sb = new StringBuilder(); uint pcchOut = 0; uint ret = AssocQueryString(flags, str, ".txt", null, sb, ref pcchOut); if (ret == 0) { Console.WriteLine($"Default text editor: {sb.ToString()}"); } else { Console.WriteLine("Error retrieving default text editor."); }
このアプローチは、Windows のファイル タイプのデフォルト アプリケーションを決定するためのより信頼性の高い方法を提供します。
以上がWindows でファイル タイプのデフォルト アプリケーションをプログラムで決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。