Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中抓取当前活动窗口的快照+;窗户_C++_Windows_Abstract - Fatal编程技术网

C++ 在C+中抓取当前活动窗口的快照+;窗户

C++ 在C+中抓取当前活动窗口的快照+;窗户,c++,windows,abstract,C++,Windows,Abstract,我一直在试图找出如何抓取我的活动窗口截图。我在这里和其他网站上读过几个例子,但没有一个对我有用 我发现的最简单的例子是: SendKeys::Send("%{PRTSC}"); Image img = Clipboard.GetImage(); img.Save(".\testprintscreen.jpg"); 然而,它给了我错误 将鼠标悬停在img变量上时,会显示 “抽象类类型的对象”System::Drawing::Image“不是 允许“ 及 将鼠标悬停在Clipboa

我一直在试图找出如何抓取我的活动窗口截图。我在这里和其他网站上读过几个例子,但没有一个对我有用

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

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

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

更多信息会有所帮助。例如,您是在Windows还是Linux上工作?语言是java还是C++?是否加载了任何常用的库?堆栈溢出提供了一些可以使用的标记。它是C++,我从所有的命名空间声明中都可以看出它是显而易见的,但是我不知道java使用的名称空间DES。Windows也是一个C++程序员,我不懂java。不过,我有时会误认java代码作为C++代码。这就是为什么我要问。无论如何,通常在堆栈溢出时命名语言。我的平台是Linux,所以我将把这个问题留给其他人。祝你好运。更多的信息会有所帮助。例如,您是在Windows还是Linux上工作?语言是java还是C++?是否加载了任何常用的库?堆栈溢出提供了一些可以使用的标记。它是C++,我从所有的命名空间声明中都可以看出它是显而易见的,但是我不知道java使用的名称空间DES。Windows也是一个C++程序员,我不懂java。不过,我有时会误认java代码作为C++代码。这就是为什么我要问。无论如何,通常在堆栈溢出时命名语言。我的平台是Linux,所以我将把这个问题留给其他人。祝你好运