无法将剪贴板复制到C:\文件夹

时间:2014-01-07 18:34:24

标签: c# permissions clipboard

按下“打印屏幕”按钮后,我试图截取显示器的屏幕截图。使用下面的代码我试图检查剪贴板中是否有任何内容。如果是这样,我试图将其保存在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);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

为什么要将它保存到c:,而不是更易于管理的地方,例如My DocumentsDesktop?根据您运行程序的位置,您可能会或可能不会遇到尝试直接保存到c:的安全问题。

考虑使用Environment.SpecialFolder枚举来获取正确的位置并将图像保存在那里。

mahir.Save(Path.Combine(
  Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "screenshot.gif"),
  System.Drawing.Imaging.ImageFormat.Gif);

或者,您可以尝试使用管理员权限运行程序。