Получить эскиз сетевого файла DWG с помощью Windows API Code Pack

1

Я использую приведенный ниже код, чтобы получить миниатюру файла DWG с помощью пакета кода Windows API:

ShellFile shellFile = ShellFile.FromFilePath(mediaInfo.Filename);
return shellFile.Thumbnail.LargeBitmap;

Но это работает только для локальных файлов DWG и возвращает пустые миниатюры документов для сетевых файлов.

Однако я вижу миниатюры сетевых файлов через проводник Windows (я на Win 8.1).

Любой совет будет принят во внимание.

Теги:
windows-api-code-pack

1 ответ

1
Лучший ответ

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

using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Shell;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string fileName = @"\\PC\Users\Public\bitmap.bmp";
            ShellFile shellFile = ShellFile.FromFilePath(fileName);
            ShellThumbnail thumbnail = shellFile.Thumbnail;
            var pictureBox = new PictureBox
            {
                Image = thumbnail.Bitmap,
                Dock = DockStyle.Fill
            };
            Controls.Add(pictureBox);
        }
    }
}

Изображение 174551

Проверьте следующее:

  • попробуйте с другим расширением, чтобы увидеть, влияет ли это на все из них или нет.
  • попробуйте перерегистрировать обработчики эскизов, просто догадайтесь, но SageThumbs могут это исправить, зарегистрировав его и отменив его как обработчик по умолчанию для расширений
  • если это имеет значение, я использовал Code Pack, который я сам нажал на NuGet: https://www.nuget.org/packages/WindowsAPICodePack-Shell/ (не уверен, что это может быть проблемой, поскольку я ничего не изменил )
  • 0
    Aybe, спасибо за вклад. Да, приведенный выше код работает для файла изображений. Но я пытаюсь отобразить файлы DWG, и приведенный выше код работает только для локальных файлов DWG.
  • 0
    Ах да, к сожалению, у меня нет Autocad для тестирования! Но появляется одна опция, пытались ли вы изменить флаг thumbnail.RetrievalOption перед получением растрового изображения?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню