2011-11-22 59 views
1

我正在尝试使用系统命令清除剪贴板。所以,我有下面的代码在我的应用程序(C语言编写的在Mac 10.6) -在Mac上清除剪贴板

SYSTEM("/bin/echo -n '' | /usr/bin/pbcopy"); 

但上述线不清除剪贴板。有趣的是,如果我在终端中运行以下命令,它将清除剪贴板。

/bin/echo -n '' | /usr/bin/pbcopy 

任何想法为什么系统行为奇怪。

+0

你确定系统调用工作吗?你在检查错误吗?你可以试试'/ bin/echo test> /tmp/test.txt'吗? – Thilo

+0

@Thilo - 不,我不检查错误。此外系统调用像系统(“/ usr/sbin/networksetup -setairportpower en1 on”) - 这是上面这行正在工作。 – Prashant

+0

为什么只是C,为什么不写Obj-C并在其中使用C。这会给你所有的Cocoa Mac的善良?也许我错过了一些东西,但是我相信你可以在Obj-C里面直写C –

回答

2

你在做太多的工作。有没有必要叉一个外壳和两个更多的进程来做到这一点:

[[NSPasteboard generalPasteboard] clearContents]; 
+2

尽管他的程序是用C编写的。 – Thilo

+0

@Thilo - 正确。 – Prashant

+2

然后链接到Carbon库并调用PasteboardClear()。 – NSResponder