2011-09-09 67 views
4

我寫在C#控制檯應用程序,在OS X上使用單聲道如何從OS X上的Mono/C#控制檯應用程序將文本複製到剪貼板?

在Windows上,這是我如何將文本複製到剪貼板:從標記的方法

Clipboard.SetText("text"); 

...與STAThread屬性:

[STAThread] // for OLE 
public static void Main (string[] args) 
{ 
    Clipboard.SetText("text"); 
} 

剪貼板是在System.Windows.Forms中定義的。該代碼編譯並運行在OS上的Mono運行時上的Windows 上的官方Microsoft .NET運行時下。

在Windows上,文本被複制,所以它不是忘記引用或問題使用聲明。

不幸的是,當我在Mono/OS X下運行代碼時,文本實際上並未複製到剪貼板。有些東西會在我的Dock上快速出現,然後消失得很快,但無論哪種方式,我試圖複製的文本都不會在剪貼板上結束。

所以:如何複製文本使用Mono在OS X(和Linux?)上執行剪貼板?

如果您有興趣查看整個項目,代碼如下:https://github.com/leeohsheeus/boom-sharp

回答

0

控制檯應用程序本身不能將文本複製到剪貼板。用戶將不得不使用終端應用程序的複製粘貼&。

+0

你的意思是什麼?或者只是單聲道?因爲從控制檯應用程序複製到剪貼板可在Windows上工作。 –

+0

我的意思是「完全」。如果它在.NET中運行在Windows上,那麼它是一個僅限於Windows的功能。 – jstedfast

6

如果你想使用單聲道編程多個平臺,Gtk.Clipboard可能會對你有用。

最低用法示例:

Gtk.Clipboard clipboard = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)); 

clipboard.Text = "Hello World"; 

而且這Stackoverflow-Question可能是有趣的。

+0

http://stackoverflow.com/questions/17178864/clipboard-gettext-always-returns-empty-string-in-mono-on-mac。也許使用一些Linux API功能呢? – Luba

相關問題