如何从OS X上的Mono/C#控制台应用程序将文本复制到剪贴板?

Jos*_*ins 4 .net c# clipboard mono

我正在使用OS X上的Mono在C#中编写一个控制台应用程序.

在Windows上,以下是将文本复制到剪贴板的方法:

Clipboard.SetText("text");
Run Code Online (Sandbox Code Playgroud)

...从标记有STAThread属性的方法:

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

剪贴板在System.Windows.Forms中定义.该代码在Windows 上的官方Microsoft .NET运行时 OS X上的Mono运行时下编译和运行.

在Windows上,文本被复制,因此不存在忘记引用或using语句的问题.

不幸的是,当我在Mono/OS X下运行代码时,文本实际上并未复制到剪贴板.我的Dock上出现了一些快速的东西然后消失得很快,但不管怎样,我正在尝试复制的文本不会最终放在剪贴板上.

那么:我如何复制文本使用Mono在OS X(和Linux?)上做剪贴板?

如果您对查看整个项目感兴趣,请访问以下代码:https://github.com/leeohsheeus/boom-sharp.

Ran*_*zen 7

如果您想使用Mono为多个平台编程,Gtk.Clipboard可能会对您感兴趣.

最低使用量 - 示例:

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

clipboard.Text = "Hello World";
Run Code Online (Sandbox Code Playgroud)

Stackoverflow问题可能也很有趣.