Anonymous
Сделайте снимок экрана в среде gnome через API dbus.
Сообщение
Anonymous » 25 май 2024, 15:14
Я пытаюсь сделать снимок экрана с помощью API gnome dbus
https://gitlab.gnome.org/GNOME/xdg-desk ... nome.Shell . Скриншот.xml
Код: Выделить всё
#include
#include
#include
#include
int main(void)
{
GDBusProxy *proxy;
GDBusConnection *conn;
GError *error = NULL;
conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
g_assert_no_error(error);
proxy = g_dbus_proxy_new_sync(conn,
G_DBUS_PROXY_FLAGS_NONE,
NULL, /* GDBusInterfaceInfo */
"org.gnome.Shell", /* name */
"/org/gnome/Shell", /* object path */
"org.gnome.Shell.Screenshot", /* interface */
NULL, /* GCancellable */
&error);
g_assert_no_error(error);
int success;
char filename_used[100];
g_dbus_proxy_call_sync(proxy,"Screenshot",
g_variant_new ("(bbsbs)", TRUE, FALSE, "/tmp/screenshot",&success,filename_used),
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
&error);
g_assert_no_error(error);
return 0;
}
ошибка: ОШИБКА: dbus-stack.c:33:main: утверждение не выполнено (ошибка == NULL): GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Нет такой метод? Скриншот? (g-dbus-error-quark, 19)
Выручайте! ОШИБКА: dbus-stack.c:33:main: утверждение не выполнено (ошибка == NULL): GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Нет такого метода? Снимок экрана? (g-dbus-error-quark, 19)
Прервано (сброс ядра)
очевидно, я делаю что-то неправильно
Подробнее здесь:
https://stackoverflow.com/questions/785 ... s-dbus-api
1716639251
Anonymous
Я пытаюсь сделать снимок экрана с помощью API gnome dbus https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/blob/main/data/org.gnome.Shell. Скриншот.xml [code]#include #include #include #include int main(void) { GDBusProxy *proxy; GDBusConnection *conn; GError *error = NULL; conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); g_assert_no_error(error); proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, NULL, /* GDBusInterfaceInfo */ "org.gnome.Shell", /* name */ "/org/gnome/Shell", /* object path */ "org.gnome.Shell.Screenshot", /* interface */ NULL, /* GCancellable */ &error); g_assert_no_error(error); int success; char filename_used[100]; g_dbus_proxy_call_sync(proxy,"Screenshot", g_variant_new ("(bbsbs)", TRUE, FALSE, "/tmp/screenshot",&success,filename_used), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); g_assert_no_error(error); return 0; } [/code] ошибка: ОШИБКА: dbus-stack.c:33:main: утверждение не выполнено (ошибка == NULL): GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Нет такой метод? Скриншот? (g-dbus-error-quark, 19) Выручайте! ОШИБКА: dbus-stack.c:33:main: утверждение не выполнено (ошибка == NULL): GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Нет такого метода? Снимок экрана? (g-dbus-error-quark, 19) Прервано (сброс ядра) очевидно, я делаю что-то неправильно Подробнее здесь: [url]https://stackoverflow.com/questions/78529115/take-screenshot-in-gnome-environment-via-its-dbus-api[/url]