|
[Date Index]
[Thread Index]
[Author Index]
Accessing the contents of the clipboard
- To: mathgroup at smc.vnet.net
- Subject: [mg85212] Accessing the contents of the clipboard
- From: Szabolcs <szhorvat at gmail.com>
- Date: Sat, 2 Feb 2008 03:27:14 -0500 (EST)
Is there a *reliable* way to get the text that was copied to the
clipboard?
First I experimented with creating a hidden notebook and pasting to
it, like this:
nb = CreateDocument[Null, Visible -> False];
FrontEndExecute@FrontEndToken[nb, "PasteSpecial"]
NotebookGet[nb] (* extract the data somehow ... *)
NotebookClose[nb]
The problem is that I would like to access the exact string that was
copied, but NotebookGet returns a complicated BoxData structure that
may contain many things, even when the clipboard only had plain text
on it. I do not know how to convert it back to the *same* string that
was copied, because in edge cases Mathematica might have interpreted
the text ... what if the text was "\(k\_1\)"? (Unlikely, I know, but I
would like to avoid unpleasant surprises.)
Then, in final desperation, I turned to the JLink documentation, and
using this page I put together something:
http://blogs.sun.com/JavaFundamentals/entry/transferring_text_through_the_clipboard
But I would like to avoid using JLink very much, because I do NOT know
Java (this is the first Java program I have ever written, if it can be
counted as a Java program at all ...), and I do not know what are the
things that can go wrong ...
So I am looking for better, preferably "pure Mathematica" suggestions.
<< JLink`
LoadJavaClass["java.awt.Toolkit"]
LoadJavaClass["java.awt.datatransfer.DataFlavor"]
dtk = Toolkit`getDefaultToolkit[]
clipboard = dtk@getSystemClipboard[]
clipdata = clipboard@getContents[clipboard]
clipdata@getTransferData[DataFlavor`stringFlavor]
Prev by Date:
MathLink with MS Visual Studio 2008
Next by Date:
Re: Accessing the contents of the clipboard
Previous by thread:
Re: MathLink with MS Visual Studio 2008
Next by thread:
Re: Accessing the contents of the clipboard
|