gpt4 book ai didi

c++ - 使用 C++ 获取 linux 机器的屏幕截图

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:41 26 4
gpt4 key购买 nike

我有一个 C++ 程序可以截取我的 Ubuntu 14.04 机器的屏幕截图。该程序使用 X11 库。我需要在启动时从守护进程执行这个应用程序。但它返回 XOpenDisplay failed。我认为这是因为没有加载 X11 服务器。是否有任何编程方式可以在加载 X11 服务器后立即获取屏幕截图?

编辑:

错过了告诉一些事情.. 守护进程在启动时启动并且无法截取屏幕截图。所以在开始之后我停止了守护进程并从终端重新启动它。然后显示相同的错误(XOpenDisplay 失败)。是否是屏幕截图和守护进程的问题??

最佳答案

这不仅仅是等待 X 服务器启动的问题。要成功连接到它:

  • X 服务器必须正在运行。
  • 程序必须知道它的地址才能连接到它,该地址通常存储在 DISPLAY 环境变量中。
  • 程序必须向 X 服务器进行身份验证,这通常是通过提供从文件中读取的 X 服务器 cookie,该文件仅对当前登录的用户可读。

如果您只是将程序作为图形 session 的一部分启动,而不是在启动后独立启动,那么所有这些条件都已满足。

有几种方法可以在图形 session 中启动程序。一种是将 something.desktop 文件放入 /etc/xdg/autostart 目录。您可以从那里检查其他文件的语法。

关于c++ - 使用 C++ 获取 linux 机器的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34877029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com