ホームページ >バックエンド開発 >C++ >Windows で特定のファイル タイプのデフォルト アプリケーションをプログラムで決定するにはどうすればよいですか?

Windows で特定のファイル タイプのデフォルト アプリケーションをプログラムで決定するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-04 20:09:40205ブラウズ

How Can I Programmatically Determine the Default Application for a Specific File Type on Windows?

Windows で特定のファイル タイプのデフォルト アプリケーションを識別する方法

さまざまなファイル タイプを操作するアプリケーションを開発する場合、次のことが必要になります。これらのファイルを開くことに関連付けられたデフォルトのアプリケーションを識別します。これを実現するために、Windows はプラットフォーム固有の機能を活用する方法を提供しています。

レジストリは一般的に使用されていますが、Windows 8.1 の不安定性で示されているように、この情報を取得するための信頼できる手段ではありません。したがって、Win32 API、特に AssocQueryString 関数を使用することをお勧めします。

AssocQueryString を使用するには、Shlwapi.dll ライブラリから必要な定義をインポートし、ラッパー メソッドを作成する必要があります:

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
{
    None = 0,
    ...
}

public enum AssocStr
{
    Command = 1,
    ...
}

実装例は以下にあります:

static string AssocQueryString(AssocStr association, string extension)
{
    ...
    return sb.ToString();
}

この関数を呼び出すことにより適切なパラメータを使用すると、開発者は特定の種類のファイルを開くことに関連付けられた実行可能ファイルへのパスを取得できます。これにより、独自のソフトウェア内でファイルを起動するときに、外部アプリケーションとのシームレスな統合が可能になります。

以上がWindows で特定のファイル タイプのデフォルト アプリケーションをプログラムで決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。