我想知道是否有一种方法可以使用控制台应用程序截取您的桌面,而无需调用Windows.Forms并调用SendKeys
该类。
因为我刚刚创建了一个编译器,它只能编译纯 C# 控制台应用程序,如果添加引用它不起作用,因为它会给你一些错误请参阅此链接(我的问题与 codeproject 的答案),我想创建一个控制台应用程序,可以在我想要的时候截取屏幕截图。
我试图用控制台应用程序截取我的屏幕截图,然后将其保存到我的桌面但由于某种原因..它告诉我,我的剪贴板是空的时候显然它不是..如果你检查代码你可以看到我按PrintScreen,当您这样做时,它会将其保存到剪贴板.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ScreenshotConsole
{
class Program
{
static void Main(string[] args)
{
screenshot();
Console.WriteLine("Printescreened");
saveScreenshot();
Console.ReadLine();
}
static void screenshot()
{
SendKeys.SendWait("{PRTSC}");
}
static void saveScreenshot()
{
//string path;
//path = "%AppData%\\Sys32.png"; // collection of paths
//path = Environment.ExpandEnvironmentVariables(path);
if (Clipboard.ContainsImage() == true)
{
Image image = (Image)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
image.Save("image.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
else
{
Console.WriteLine("Clipboard empty.");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)