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");
}
}
}