2011-09-09 12 views
4

私はWindows上でOS XのOS XのMono/C#コンソールアプリケーションからクリップボードにテキストをコピーするにはどうすればよいですか?

にモノを使用して、C#でコンソールアプリケーションを書いているが、ここで私はテキストをクリップボードにコピーする方法です:

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では、テキストがコピーされるので、参照やコメントを忘れることはありませんusingステートメント。

Mono/OS Xの下でコードを実行すると、テキストは実際にはクリップボードにコピーされません。私のドックには何かが素早く現れ、その後すぐに消えますが、いずれにしてもコピーしようとしているテキストはクリップボードには終りません。

So:テキストをコピーするにはどうすればOS X(およびLinux?)のクリップボードをモノを使用しますか?

プロジェクト全体を見たい場合は、コードはhttps://github.com/leeohsheeus/boom-sharpです。

答えて

0

コンソールアプリケーション自体は、テキストをクリップボードにコピーできません。ユーザーは、端末アプリケーションからCopy &ペーストを使用する必要があります。

+0

どういう意味ですか?モノでも?クリップボードへのコピーはコンソールアプリケーションからWindows上で動作するためです。 –

+0

「まったく」という意味です。 .NETでWindows上で動作する場合は、Windows専用の機能です。 – jstedfast

6

Monoを使用して複数のプラットフォームをプログラミングする場合は、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たぶん代わりにいくつかのfreshmeat_linux/Linux]のAPI関数を使用する? – Luba

関連する問題