Как извлечь значок из ярлыка ClickOnce (.appref-ms)?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как извлечь значок из ярлыка ClickOnce (.appref-ms)?

Сообщение Anonymous »

Пример содержимого ярлыка приложения ClickOnce (.appref-ms):

Код: Выделить всё

http://mtgo.patch.daybreakgames.com/patch/mtg/live/client/MTGO.application#MTGO.application, Culture=neutral, PublicKeyToken=dbac2845cba5280e, processorArchitecture=msil
< /code>
Пробовали методы, которые до сих пор не удались: < /p>
[list]
[*]Icon.ExtractAssociatedIcon(filePath)
[*]

Код: Выделить всё

SHGetFileInfo()
с использованием shgfi.iconlocation и shgfi.icon flags.
[*]

Код: Выделить всё

IShellItemImageFactory::GetImage()
[/list]
Добавление примера кода для ishellimagefactory:

Код: Выделить всё

private BitmapSource GetIcon(string filePath, int size, ThumbnailOptions options, double scaleFactor)
{
IShellItem nativeShellItem;
Guid shellItem2Guid = new Guid(IShellItem2Guid);

int retCode = SHCreateItemFromParsingName(filePath, IntPtr.Zero, ref shellItem2Guid, out nativeShellItem);

if (retCode != 0)
throw Marshal.GetExceptionForHR(retCode);

NativeSize nativeSize = new NativeSize();
nativeSize.Width = (int) (size * scaleFactor);
nativeSize.Height = (int) (size * scaleFactor);

IntPtr hBitmap;
HRESULT hr = ((IShellItemImageFactory)nativeShellItem).GetImage(nativeSize, options, out hBitmap);

Marshal.ReleaseComObject(nativeShellItem);

if (hBitmap == IntPtr.Zero)
{
DeleteObject(hBitmap);
return null;
}

BitmapSource img = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

DeleteObject(hBitmap);

return img;
}
, который возвращает этот значок:
/п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -appref-ms
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как извлечь значок из ярлыка ClickOnce (.appref-ms)?
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как извлечь значок из ярлыка Clickonce (.appref-MS)?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как установить собственный значок для ярлыка приложения iOS?
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как установить собственный значок для ярлыка приложения iOS?
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • WinUI 3 ClickOnce — невозможно загрузить DLL «Microsoft.ui.xaml.dll»
    Гость » » в форуме C#
    0 Ответы
    78 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»