C# 通过Windows API代码包获取网络DWG文件的缩略图

C# 通过Windows API代码包获取网络DWG文件的缩略图,c#,.net,windows-api-code-pack,C#,.net,Windows Api Code Pack,我使用以下代码使用Windows API代码包获取DWG文件缩略图: ShellFile shellFile = ShellFile.FromFilePath(mediaInfo.Filename); return shellFile.Thumbnail.LargeBitmap; 但是这只适用于本地DWG文件,并返回基于网络的文件的空白文档缩略图。 但是,我通过Windows资源管理器看到了网络文件的缩略图(我使用的是Win 8.1) 如果您有任何建议,我们将不胜感激。您这边一定出了什么问题,

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

ShellFile shellFile = ShellFile.FromFilePath(mediaInfo.Filename);
return shellFile.Thumbnail.LargeBitmap;
<>但是这只适用于本地DWG文件,并返回基于网络的文件的空白文档缩略图。 但是,我通过Windows资源管理器看到了网络文件的缩略图(我使用的是Win 8.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);
        }
    }
}

检查以下内容:

  • 尝试使用另一个扩展,看看它是否影响所有扩展
  • 尝试重新注册缩略图处理程序,这只是一个猜测,但可以通过将其注册并取消注册为扩展的默认处理程序来解决此问题
  • 如果这很重要,我已经使用了我自己推给NuGet的代码包:(不确定这可能是问题所在,因为我没有更改任何内容)

Aybe,感谢您的贡献。是的,上面的代码适用于图像文件。但是我正在尝试渲染DWG文件,上面的代码仅适用于本地DWG文件是的,不幸的是,我没有要测试的Autocad!但是出现了一个选项,在获取位图之前是否尝试更改
缩略图.RetrievalOption
标志?不幸的是,它没有帮助。我得到了远程DWG文件的空白文档图标。你总是可以尝试使用源代码而不是NuGET包,在工作扩展和DWG文件之间进行比较,找出原因。嗨,你有没有解决这个问题???我也有同样的问题。我的原始代码与您的代码相同,可以在所有本地文件和大多数网络文件中正常工作,但在某些网络中不起作用。我正在考虑将网络文件复制到一个临时目录,并获取缩略图,但我想这会很慢。