0

我正在用 C#(.net 4.0,VS 2012)制作一个小应用程序,作为其中的一部分,我需要提取另一个 EXE 文件的图标。我发现我可以将 ExtractVistaIcon 与 TKageyu.Utils 结合使用。问题是,没有像 VS.net 2012 所说的那样的 TKageyu.Utils。

using TKageyu.Utils;

结果:

“找不到类型或命名空间名称‘TKageyu’”

我该怎么办?我在哪里可以得到它?


我尝试使用它的代码:

using (TKageyu.Utils.IconExtractor IconEx = new TKageyu.Utils.IconExtractor(fullPath))
{
      Icon icoAppIcon = IconEx.GetIcon(0); // Because standard System.Drawing.Icon.ExtractAssociatedIcon() returns ONLY 32x32.
      picboxAppLogo.Image = ExtractVistaIcon(icoAppIcon);
}

原始代码取自: 在应用程序中使用 256 x 256 Vista 图标 (当我开始工作时将由我编辑)

4

1 回答 1

0

感谢@Simon McKenzie,我找到了解决问题的方法:

  1. 转到http://www.codeproject.com/Articles/26824/Extract-icons-from-EXE-or-DLL-files 下载应用程序
  2. 在 Visual Studio 中打开 SLN 文件(我在 2012 年做过)
  3. 打开 Form1.cs,复制名称空间和包含(只是为了确保..)
  4. 转到您的项目并将命名空间粘贴到您需要的文件中,同时检查您是否拥有其他文件中所需的命名空间的所有包含。
  5. 用它!:)

我这样使用它:

using (TKageyu.Utils.IconExtractor IconEx = new TKageyu.Utils.IconExtractor(fullPath))
        {
            Icon icoAppIcon = IconEx.GetIcon(0); // Because standard System.Drawing.Icon.ExtractAssociatedIcon() returns ONLY 32x32.
            Bitmap hBitmap = ExtractVistaIcon(icoAppIcon);
            IntPtr hLBitmap = hBitmap.GetHbitmap();
            ImageSource wBitmap = Imaging.CreateBitmapSourceFromHBitmap(hLBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
            IconBox_1.Source = wBitmap;
            IconBox_S.Source = wBitmap;
            IconBox_C.Source = wBitmap;
            IconBox_W.Source = wBitmap;
        }
于 2012-08-23T07:07:31.173 回答