2011-11-22 56 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