Windows でファイルの種類を開くための既定のアプリケーションを見つける (.NET)
.NET Framework 2.0 では、C# を使用して次のことが可能です。 System.Diagnostics.Process.Start() を利用して、デフォルトのアプリケーションでファイルを開きます。ただし、特定の拡張子のないファイルの場合、関連付けられているアプリケーションを判断するのは難しい場合があります。
Win32 API の使用
この制限を克服するには、Win32 API 関数 AssocQueryString( )を推奨します。この関数は、特定のファイル タイプに関連付けられた文字列を返し、開発者がデフォルト アプリケーションの実行可能パスを抽出できるようにします。
以下のコード スニペットは、AssocQueryString() の使用方法を示しています。
using System.Runtime.InteropServices; using System.Text; public static string GetDefaultApplicationForExtension(string extension) { const int S_OK = 0; const int S_FALSE = 1; uint length = 0; uint ret = AssocQueryString(AssocF.None, AssocStr.Executable, extension, null, null, ref length); if (ret != S_FALSE) { throw new InvalidOperationException("Could not determine associated string"); } StringBuilder sb = new StringBuilder((int)length); // (length-1) will probably work too as the marshaller adds null termination ret = AssocQueryString(AssocF.None, AssocStr.Executable, extension, null, sb, ref length); if (ret != S_OK) { throw new InvalidOperationException("Could not determine associated string"); } return sb.ToString(); }
この関数を呼び出し、引数としてファイル拡張子を指定することにより、開発者はデフォルトのアプリケーション パスを取得し、目的のアプリケーションでファイルを開くことができるようになります。プログラム的に。
以上が.NET で特定のファイル タイプのデフォルト アプリケーションをプログラムで見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。