First Create empty console C# project.
Next, add your script file to project's resources.
In VS2010 you can do it with:
RMB on project name->Properties->Resources->Add Resource->Add New Text File
Now you can get script's content to save and run it.
Source code is quite simple:
To reference script content I use:
Get some random temporary file name:
Next save and run script:
To run a script as other user you can use this method:
RunAs without password prompt
Any other script (.js, .vbs, .ahk) can be easily embedded into .exe-file in this way.
Full source code:
Next, add your script file to project's resources.
In VS2010 you can do it with:
RMB on project name->Properties->Resources->Add Resource->Add New Text File
Now you can get script's content to save and run it.
Source code is quite simple:
To reference script content I use:
Properties.Resources.MyEmbeddedScriptwhere MyMbeddedScript is name of resource.
Get some random temporary file name:
string scriptFileName = Path.GetTempFileName().Replace(".tmp",".vbs");
Next save and run script:
File.WriteAllText(scriptFileName, content); startedProcess = Process.Start(scriptFileName);
To run a script as other user you can use this method:
RunAs without password prompt
Any other script (.js, .vbs, .ahk) can be easily embedded into .exe-file in this way.
Full source code:
using System; using System.Security; using System.Diagnostics; using System.IO; namespace scriptEmbed { class Program { static int Main(string[] args) { return RunScript(Properties.Resources.MyEmbeddedScript); } static int RunScript(string content) { string scriptFileName = Path.GetTempFileName().Replace(".tmp",".vbs"); Process startedProcess; try { File.WriteAllText(scriptFileName, content); startedProcess = Process.Start(scriptFileName); while (!startedProcess.HasExited) ; File.Delete(scriptFileName); return startedProcess.ExitCode; } catch (Exception e) { Console.WriteLine(e.Message); return 1; } } static string GetTempFolder() { return System.Environment.GetEnvironmentVariable("TEMP"); } } }