Как определить какая программа по умолчанию используется для открытия файла
Проблема такого рода делаю файловый менеджер и столкнулся с проблемой что не могу передать изображение программы по умолчанию то есть у меня все файлы с одним изображением.
Теперь по теме:
Вам нужно смотреть в сторону Как извлечь значки(Icon) из exe то есть код.
Вот пример программы Resource Hacker
Вот маленький фрагмент кода на С++ извлечь значки(Icon) из exe:
Код:
BOOL DrawIcon(CDC *pDC, HINSTANCE hinst, LPCTSTR resName, const CRect& pos)
{
HICON hic = ::LoadIcon(hinst, resName);
if (hic == NULL) return FALSE;
int cx = ::GetSystemMetrics(SM_CXICON);
int x = (pos.left + pos.right - cx) / 2;
int y = (pos.bottom + pos.top - cx) / 2;
pDC->DrawIcon(x, y, hic);
::DestroyIcon(hic);
DrawTitle(pDC, FormatId(resName, TYP_IDI), pos, true);
return TRUE;
}
{
HICON hic = ::LoadIcon(hinst, resName);
if (hic == NULL) return FALSE;
int cx = ::GetSystemMetrics(SM_CXICON);
int x = (pos.left + pos.right - cx) / 2;
int y = (pos.bottom + pos.top - cx) / 2;
pDC->DrawIcon(x, y, hic);
::DestroyIcon(hic);
DrawTitle(pDC, FormatId(resName, TYP_IDI), pos, true);
return TRUE;
}
Для этого погружаемся в дебри Windows.
Ну с другой стороны не мне решать. Может имено Вы сделаете прорыв в файловых менеджерах.
Удачи!!!