我一直试图弄清楚如何获取活动窗口的屏幕截图。我在这里和其他网站上已经阅读了几个示例,但似乎没有一个适合我。
我发现的最简单的示例是:
SendKeys::Send("%{PRTSC}");
Image img = Clipboard.GetImage();
img.Save(".\testprintscreen.jpg");
但是,它给了我错误 将鼠标悬停在img变量上时,它会说
“抽象类类型为“ System :: Drawing :: Image”的对象”不是 允许”
和 将鼠标悬停在Clipboard.GetImage上时会显示
“不允许输入类型名称”
这是我的名称空间声明:
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
using namespace System::Text;
using namespace System::Globalization;
using System::Math;
我也尝试了以下方法:
Bitmap bitmap = (gcnew Bitmap(this->Width, this->Height));
Drawing::Rectangle rect = Drawing::Rectangle(0, 0, bitmap.Width, bitmap.Height);
bitmap.Save("TestImage.jpeg", ImageFormat::Jpeg);
但是,这只会给我一个带有与程序窗口形状/大小相同的黑色矩形的图像...实际上并没有捕获该窗口的内容。