C#-根据计时器拍摄屏幕截图

C#-根据计时器拍摄屏幕截图,c#,gdi+,screenshot,C#,Gdi+,Screenshot,我正在尝试创建一个WinForms应用程序,它以设定的时间间隔截图。我认为我的代码是正确的,但当我尝试运行它时,我收到错误消息“System.Runtime.InteropServices.ExternalException未经处理,GDI+中发生一般错误。” 给我带来麻烦的是: bmpScreenshot.Save(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\ScreenCaptures"

我正在尝试创建一个WinForms应用程序,它以设定的时间间隔截图。我认为我的代码是正确的,但当我尝试运行它时,我收到错误消息“System.Runtime.InteropServices.ExternalException未经处理,GDI+中发生一般错误。”

给我带来麻烦的是:

bmpScreenshot.Save(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\ScreenCaptures", ImageFormat.Png);

你知道哪里出了问题吗?提前感谢。

您需要使用实际文件名保存,如下所示:

bmpScreenshot.Save(Environment.GetFolderPath
    (Environment.SpecialFolder.DesktopDirectory) 
    + @"\ScreenCaptures\newfile.png", ImageFormat.Png);

您的代码传递的路径不包含文件名。另外,请检查以确保Environment.GetFolderPath(…)返回的路径末尾没有“\”,否则您的路径将以“\”结尾。

这很奇怪-我必须键入3个反斜杠才能显示2个。
bmpScreenshot.Save(Environment.GetFolderPath
    (Environment.SpecialFolder.DesktopDirectory) 
    + @"\ScreenCaptures\newfile.png", ImageFormat.Png);