2

我使用以下代码通过 Windows API 代码包获取 DWG 文件缩略图:

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

但这仅适用于本地 DWG 文件,并为基于网络的文件返回空白文档缩略图。

但是,我通过 Windows 资源管理器(我在 Win 8.1 上)看到了网络文件的缩略图。

任何意见,将不胜感激。

4

1 回答 1

2

您这边一定有问题发生,因为以下代码在这里有效:

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);
        }
    }
}

在此处输入图像描述

检查以下内容:

  • 尝试使用另一个扩展程序,看看它是否会影响所有这些扩展程序
  • 尝试重新注册缩略图处理程序,只是一个猜测,但SageThumbs可能会通过注册它并取消注册它作为扩展的默认处理程序来解决这个问题
  • 如果这很重要,我已经使用了我自己推送到 NuGet 的代码包:https ://www.nuget.org/packages/WindowsAPICodePack-Shell/ (不确定这可能是问题,因为我没有改变任何东西)
于 2014-12-05T15:07:27.563 回答