Заставьте программу Qt / C ++ показывать свои типы файлов, известные в Windows

Используя Qt 5.9, я кодировал программу для работы с электронными таблицами, а затем создал установщик для нее: Qt Installer Framework (QtIFW2.0.1). Затем я отправил программу многим своим друзьям. Они установили приложение на свой компьютер с Windows и теперь используют его, но у них всех есть общая проблема:
при сохранении файлов приложения эти файлы отображаются как «неизвестные» файлы на рабочем столе.

Проблема только в форме и внешнем виде сохраненных файлов, а не в их функциональности, и они открываются приложением при двойном щелчке.

Вопрос в том, какие изменения в коде необходимы для того, чтобы программа показала форму и внешний вид своих файлов?
Например, мы предлагаем коду определенную форму, используя файл изображения или тому подобное, для отображения на сохраненные файлы и таким образом, чтобы они отображались как известные.

-1

Решение

На самом деле это не имеет ничего общего с Qt или C ++. Вам просто нужно зарегистрировать расширение вашего файла в оболочке Windows, чтобы его могли понять другие компоненты / оболочки Windows.

Вот общая информация о Типы файлов и ассоциации файлов под окнами.

Вам нужно сделать несколько записей реестра Windows, которые выглядят так:

example.reg:

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"

Вот Вы можете прочитать, как это работает в целом

менять myfirm.myapp.v1, .myextension и путь к вашему .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");

РЕДАКТИРОВАТЬ: Еще один, чтобы сделать это с помощью Qt Installer, посмотрите на ответы Вот

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]