Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module[{temp, t2, CopyFileOverwrite, datafile, dataloc, csfile,
- exefile, file, NRun},
- temp = FileNameJoin[{$TemporaryDirectory,
- "ClipboardTransparency314241234"}];
- NRun[s_] := (str = OpenWrite[FileNameJoin[{temp, "temp.bat"}]];
- WriteString[str, s];
- Import["!" <> Close[str], "Text"];);
- If[DirectoryQ[temp], t2 = Directory[];
- SetDirectory[temp];
- Map[Function[DeleteFile[#]], FileNames[]];
- SetDirectory[t2];
- DeleteDirectory[temp, DeleteContents -> True];, Null];
- CreateDirectory[temp];
- CopyFile[
- FileNameJoin[{$InstallationDirectory, "SystemFiles", "Links",
- "NETLink", "Wolfram.NETLink.dll"}],
- FileNameJoin[{temp, "Wolfram.NETLink.dll"}]];
- csfile = FileNameJoin[{temp, "File.cs"}];
- exefile = FileNameJoin[{temp, "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];
- NRun["cd " <> temp "
- C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe \
- /reference:Wolfram.NETLink.dll File.cs"];
- WriteToClipboard[type_, data_] := (
- Time[HoldForm[
- dataloc = FileNameJoin[{temp, "data.txt"}];
- datafile = OpenWrite[dataloc];
- WriteString[datafile, data];
- Close[datafile];
- ]];
- NRun["type " <> dataloc <> " | " <> exefile <> " " <> type];
- );]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement