在C ++ Windows中获取当前活动窗口的快照

时间:2019-02-05 18:12:18

标签: c++ windows abstract

我一直试图弄清楚如何获取活动窗口的屏幕截图。我在这里和其他网站上已经阅读了几个示例,但似乎没有一个适合我。

我发现的最简单的示例是:

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);

但是,这只会给我一个带有与程序窗口形状/大小相同的黑色矩形的图像...实际上并没有捕获该窗口的内容。

0 个答案:

没有答案