我怎样才能在Wayland上截屏? [英] How can I take a screenshot on Wayland?
本文介绍了我怎样才能在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屋!
查看全文