按下“打印屏幕”按钮后,我试图截取显示器的屏幕截图。使用下面的代码我试图检查剪贴板中是否有任何内容。如果是这样,我试图将其保存在c:。当我运行以下代码时,它总是会导致“GDI +中发生一般错误”。例外。但是当我使用代码但将文件夹更改为“f:\”时,它的工作正常。它看起来像“C:\”文件夹的访问权限问题。请告诉我如何为C文件夹启用权限。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
namespace Example2
{
class Program
{
[STAThread]
static void Main(string[] args)
{
if (Clipboard.ContainsImage())
{
Image screenshot = Clipboard.GetImage();
Image mahir = screenshot;
mahir.Save("c:\\screenshot.gif", System.Drawing.Imaging.ImageFormat.Gif);
}
}
}
}
答案 0 :(得分:3)
为什么要将它保存到c:
,而不是更易于管理的地方,例如My Documents
或Desktop
?根据您运行程序的位置,您可能会或可能不会遇到尝试直接保存到c:
的安全问题。
考虑使用Environment.SpecialFolder
枚举来获取正确的位置并将图像保存在那里。
mahir.Save(Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "screenshot.gif"),
System.Drawing.Imaging.ImageFormat.Gif);
或者,您可以尝试使用管理员权限运行程序。