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

时间:2011-09-09 21:24:53

标签: c# .net mono clipboard

我正在使用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 X上的Mono运行时上的Windows 上的官方Microsoft .NET运行时下编译和运行。

在Windows上,文本被复制,因此不会忘记引用或使用语句。

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

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

如果您对查看整个项目感兴趣,则代码位于:https://github.com/leeohsheeus/boom-sharp

2 个答案:

答案 0 :(得分:7)

如果您想使用Mono为多个平台编程,Gtk.Clipboard可能对您有用。

最低使用量 - 示例:

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

clipboard.Text = "Hello World";

Stackoverflow-Question可能也很有趣。

答案 1 :(得分:0)

控制台应用本身无法将文本复制到剪贴板。用户必须使用终端应用程序中的Copy& Paste。