c-我如何在Wayland上截屏



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

Gnome截屏可以在这些平台上工作,但在阅读了他的源代码后,我发现它可以通过调用其他进程来实现截屏,这对我来说很难学习。

那么,有什么方法可以让我在Wayland引擎上截图吗?

我使用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);

最新更新