问题描述
现在我需要开发一个可以在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",method_name,method_params,NULL,G_DBUS_CALL_FLAGS_NONE,-1,&error);