Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CopyFileOverwrite[f1_,
- f2_] := (If[FileExistsQ[f2], DeleteFile[f2], False];
- CopyFile[f1, f2];)
- NewRun[s_] := (str =
- OpenWrite[FileNameJoin[{$TemporaryDirectory, "temp.bat"}]];
- WriteString[str, s];
- Import["!" <> Close[str], "Text"];)
- WriteToClipboard[type_,
- data_] := (CopyFileOverwrite[
- FileNameJoin[{$InstallationDirectory, "SystemFiles", "Links",
- "NETLink", "Wolfram.NETLink.dll"}],
- FileNameJoin[{$TemporaryDirectory, "Wolfram.NETLink.dll"}]];
- csfile = FileNameJoin[{$TemporaryDirectory, "File.cs"}];
- exefile = FileNameJoin[{$TemporaryDirectory, "File.exe"}];
- file = OpenWrite[csfile];
- WriteString[file, "using System;
- using Wolfram.NETLink;
- using System.IO;
- using System.Drawing;
- using System.Windows.Forms;
- public class File{
- [STAThread]
- public static void Main(String[] args) {
- string input = System.Console.In.ReadToEnd();
- byte[] bytes = Convert.FromBase64String(input);
- Stream stream = new MemoryStream(bytes);
- IDataObject dataObject = new DataObject();
- dataObject.SetData(args[0], stream);
- Clipboard.SetDataObject(dataObject, true);
- }
- }"];
- Close[file];
- Import["!C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe \
- /reference:Wolfram.NETLink.dll " <> csfile, "Text"];
- dataloc = FileNameJoin[{$TemporaryDirectory, "data.txt"}];
- datafile = OpenWrite[dataloc];
- WriteString[datafile, data];
- Close[datafile];
- NewRun["type " <> dataloc <> " | " <> exefile <> " " <> type];)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement