我正在调用以下函数来尝试清除系统剪贴板:
GtkClipboard *clipboard;
clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_clipboard_clear(clipboard);
然而,它并没有清洁任何东西。我搜索了Gnome和GTK +文档以及无数的示例代码片段,我不知道该怎么做。
所以我的问题,你如何通过代码清除系统(linux,gnome)剪贴板? 谢谢!
答案 0 :(得分:2)
我相信你需要用零长度的文本来设置它以完全清除它,我不确定自己为什么这是必要的但是这段代码似乎有效:
clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
gtk_clipboard_clear(clipboard);
gtk_clipboard_set_text(clipboard, "", 0);
clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
gtk_clipboard_clear(clipboard);
gtk_clipboard_set_text(clipboard, "", 0);
请注意,当GTK +在X11下运行时,实际上有两个“剪贴板”,GTK(GDK_SELECTION_CLIPBOARD)和X11(GDK_SELECTION_PRIMARY)。在Windows下,GDK_SELECTION_PRIMARY上的操作我认为什么都不做。