我怎样才能在Wayland上截屏? [英] How can I take a screenshot on Wayland?

查看:0
本文介绍了我怎样才能在Wayland上截屏?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我需要开发一个插件,可以在Ubuntu、CentOS和Fedora上截屏。我试着用Xlib编写它。它可以在Ubuntu和CentOS上运行,但Fedora使用的是Wayland,我开发的插件无法运行。

Gnome截图可以在这些平台上运行,但我看了他的源代码后发现,它可以通过调用其他进程来实现截图,这对我来说是很难学习的。

有什么办法可以在Wayland Engine上截屏吗?

推荐答案

我是使用dbus获得的,以下是轻量级代码:

    method_name = "Screenshot";
    method_params = g_variant_new ("(bbs)",
                                     TRUE,
                                     FALSE, /* flash */
                                     filename);

    connection = g_application_get_dbus_connection (g_application_get_default ());
    g_dbus_connection_call_sync (connection,
                               "org.gnome.Shell.Screenshot",
                               "/org/gnome/Shell/Screenshot",
                               "org.gnome.Shell.Screenshot",
                               method_name,
                               method_params,
                               NULL,
                               G_DBUS_CALL_FLAGS_NONE,
                               -1,
                               NULL,
                               &error);

这篇关于我怎样才能在Wayland上截屏?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆