使用OS X上的框架,我可以使用下面的PNG複製到剪貼板(在C - 很明顯,我可以使用NSPasteboard與可可):如何使用X11複製到剪貼板?
#include <ApplicationServices/ApplicationServices.h>
int copyThatThing(void)
{
PasteboardRef clipboard;
if (PasteboardCreate(kPasteboardClipboard, &clipboard) != noErr) {
return -1;
}
if (PasteboardClear(clipboard) != noErr) {
CFRelease(clipboard);
return -1;
}
size_t len;
char *pngbuf = createMyPNGBuffer(&len); /* Defined somewhere else */
if (pngbuf == NULL) {
CFRelease(clipboard);
return -1;
}
CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, pngbuf,
len, kCFAllocatorNull);
if (data == NULL) {
CFRelease(clipboard);
free(pngbuf);
return -1;
}
OSStatus err;
err = PasteboardPutItemFlavor(clipboard, NULL, kUTTypePNG, data, 0);
CFRelease(clipboard);
CFRelease(data);
free(pngbuf);
return 0;
}
我感興趣的移植此功能Linux/* BSD平臺。我怎樣才能使用X複製這個?
非常感謝。非常有用,用compiz截圖工具! – Drasill 2011-07-08 13:58:38
整齊的腳本!以下超級用戶也包含一個類似的python腳本,但它只能在gnome下運行:http://superuser.com/questions/301851/how-to-copy-a-picture-to-clipboard-from-command-line -in-linux – qed 2012-06-25 09:11:29
雖然有些方法可以改進。例如,一旦剪貼板中的內容被粘貼,我們可以自動殺死gtk.main嗎? – qed 2012-06-25 09:21:42