c++ - 在没有一个特定程序窗口的情况下截取屏幕截图

标签 c++ qt screenshot

我需要截取常规屏幕截图,但我需要一种方法来忽略打开的应用程序。在屏幕截图中必须出现常规背景,就好像应用程序/窗口未打开一样。

换句话说,我需要一张没有窗口/应用程序(已存在)但显示此窗口/应用程序背后的内容的屏幕截图,忽略窗口/应用程序。

为了获取屏幕截图,我在 QT/c++ 中有以下代码:

(...)
QScreen *screen = QGuiApplication::primaryScreen();

QPixmap qPImage = screen->grabWindow(0);

QImage qImg = qPImage.toImage();//convert to qImage

(...)

有可能做我需要的吗?

问候 亚历克斯

最佳答案

可能不是完美的解决方案,但这是我在完全相同的情况下所做的:

void MainWindow::onUpdateClicked()
{
    hide();
    QTimer::singleShot(45, this, SLOT(updateScreenshotPicture()));
}

void MainWindow::updateScreenshotPicture()
{
    screenshotBorders->setPic(QPixmap::grabWindow(QApplication::desktop()->winId()));
    show();
}

关于c++ - 在没有一个特定程序窗口的情况下截取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17045027/

相关文章:

c++ - 复制构造函数问题李普曼

c++ - 对 `atexit' 的 undefined reference

c# - 编译 eAccelerator 解码 PHP 编码文件

oop - 这种设计模式的名称?

silverlight - 如何在 Silverlight 中捕获部分屏幕

iOS:是否可以在作为后台任务运行时截取屏幕截图?

c++ - ReadProcessMemory 无法正常使用 UTF16 字符串

c++ - 我如何知道正在调用 QGraphicsItem::paint() 进行打印?

android - QML 虚拟键盘尺寸

ios - 使用 Objective-C 进行 FaSTLane 快照