これは実際にはQtやC++自体とは関係ありません。ファイル拡張子をWindowsシェルに登録するだけで、他のWindowsコンポーネント/シェルでも理解できるようになります。
ここには、windows下のFile Types and File Associationsに関する一般的な情報があります。
example.reg:あなたはこのようになり、いくつかのWindowsレジストリのエントリにする必要があり
あなたはそれが一般的な
変更myfirm.myapp.v1
、.myextension
でどのように機能するかを読み取ることができ
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\myfirm.myapp.v1\shell\open\command]
@="c:\path\to\your\app.exe \"%1\""
[HKEY_CURRENT_USER\Software\Classes\.myextension]
@="myfirm.myapp.v1"
Hereをし、あなたの.exeへのパスをあなたの好みの名前にします。 Windowsは、拡張子が.myextension
のファイルをあなたのアプリケーションで開くべきであることを知ります。このファイルをダブルクリックすると、アプリはpath to file
を引数として実行されます。あなたはmain()
ファンクションで入手できます
Software\\Classes\\.myextension\\DefaultIcon
にレジストリエントリを追加して、デフォルト値をアプリのフルパスに設定すると、.exeアプリファイルから拡張子のアイコンを取得できます。
あなたはまた、あなたのアプリケーション内で直接実行時にそれを行うことができます。
QSettings s("HKEY_CURRENT_USER\\SOFTWARE\\CLASSES", QSettings::NativeFormat);
s.setValue(".myextension/DefaultIcon/.",QDir::toNativeSeparators(qApp->applicationFilePath()));
s.setValue(".myextension/.","myfirm.myapp.v1");
s.setValue("myfirm.myapp.v1/shell/open/command/.", QDir::toNativeSeparators(qApp->applicationFilePath()) + " %1");
EDIT:Qtのインストーラでそれを行うには、もう一つは答えを見てhere
私はgues「不明」のファイルによって、あなたはファイル拡張子について話しているのですか? like "savedfile.mytype"そして、あなたはこのファイルがWindowsエクスプローラのアイコンでうまく見えるようにしたいですか?私は正しい? – Xplatforms
はい。あなたは正しいよ – Franky