C ++ - получить значок исполняемого файла для использования в пути значка реестра Windows?

Я пытаюсь установить значение в реестре Windows моего приложения. Путь к исполняемому файлу отлично работает, просто добавляя путь, но когда я загружаю его, значок этого приложения не отображается в программах Windows. Как я могу правильно получить значок из моего приложения и использовать его в качестве пути к значку в реестре?

Нужно ли мне что-то настраивать в моем приложении, чтобы в реестре был виден значок?

key reg для shell-open-command "C: \ myapp \ test.exe" "% 1", но для ключа reg Default Icon "" нужно ли мне использовать обычный файл .ico рядом с exe или я могу получить также из исполняемый файл .exe, ico, который я использую внутри приложения?

Я бы хотел избежать использования файла .ico, поэтому было бы неплохо, если бы это можно было сделать, взяв значок исполняемого файла.

Хорошим примером для понимания, потому что это не дубликат, являются ссылки на торрент-магнит.

Проверить магнит-> оболочка-> открыть-> команда

и магнит-> DefaultIcon

в системном реестре

Любая помощь высоко ценится


person Vas    schedule 17.02.2018    source источник
comment
Вы можете получить дескриптор значка exe, используя ExtractIcon. Не уверен, чего вы пытаетесь достичь. Иконки являются частью exe. Значок можно изменить в разделе ресурсов проекта перед компиляцией. Это весь массив байтов после создания исполняемого файла. См. Функцию CreateWindow.   -  person Ron    schedule 17.02.2018
comment
Возможный дубликат Установите значок exe для моей программы   -  person Ivan Aksamentov - Drop    schedule 17.02.2018
comment
Какой ключ реестра вы пытаетесь установить? Разные клавиши предполагают расположение значков в разных форматах. Например, установка пути к исполняемому файлу как значение DisplayIcon в разделе Uninstall приведет к отображению основного значка приложения в списке установленных приложений.   -  person user7860670    schedule 17.02.2018
comment
Значок моего приложения в порядке ... его можно увидеть на панели задач или в трее или во всем, что мне нравится. Я хочу иметь возможность использовать тот же значок, что и исполняемый файл, для системы, которая использует для открытия приложения по пути, например магнитная торрент-ссылка. Когда появляется диалоговое окно Windows, путь к исполняемому файлу и имя приложения отображаются и работают нормально, но значок приложения не отображается вообще.   -  person Vas    schedule 17.02.2018


Ответы (1)


Значение ключа должно быть полным путем, за которым следует индекс значка.

Например, DefaultIcon -> path.exe,-123 Здесь ожидается, что path.exe будет иметь значок с идентификатором ресурса 123

HKEY_CURRENT_USER\Software\Classes\.txt -> myapp

Создайте myapp и добавьте подключ DefaultIcon

HKEY_CURRENT_USER\Software\Classes\myapp\DefaultIcon -> path.exe,-123
HKEY_CURRENT_USER\Software\Classes\myapp\shell\open\command -> "path.exe" /open "%1"
person Barmak Shemirani    schedule 17.02.2018
comment
Спасибо за ответ, я собираюсь проверить это. - person Vas; 18.02.2018
comment
Да, действительно, Бармак, это заняло у меня некоторое время, потому что у меня были некоторые проблемы с реестром, но все в порядке. Спасибо - person Vas; 18.02.2018