我有第三方EXE。我只需要从我的C#应用程序运行它。
我的主要目标是从我的C#文件中获得第三方可执行文件的版权。
有没有更好的方法来做到这一点。
我该怎么做?
谢谢你 梅纳卡
答案 0 :(得分:19)
internal static byte[] SubExe {
get {
object obj = ResourceManager.GetObject("SubExe", resourceCulture);
return ((byte[])(obj));
}
}
添加一个访问资源的方法,这也很简单,只需将以下代码添加到资源设计器cs文件中
public static byte[] GetSubExe()
{
return SubExe;
}
在主要的可执行文件源代码中,添加以下内容以读取资源并将其写入新文件
string tempExeName = Path.Combine(Directory.GetCurrentDirectory(), "A3E5.exe");
using(FileStream fsDst = new FileStream(tempExeName,FileMode.CreateNew,FileAccess.Write))
{
byte[] bytes = Resource1.GetSubExe();
fsDst.Write(bytes, 0, bytes.Length);
}
使用进程运行新的可执行文件
答案 1 :(得分:2)
右键单击你的项目解决方案资源管理器,然后在对话框中添加现有项目选择可执行文件,然后转到你的exe路径并在你的项目中添加你的exe ..那么如果你想在按钮点击事件上启动你的exe然后写这个代码很简单...
private void button_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("fire.EXE");
}
答案 2 :(得分:1)
可以写一个更简单的
private void ExtractResource(string resName, string fName) { object ob = Properties.Resources.ResourceManager.GetObject(resName, originalCulture); byte[] myResBytes = (byte[])ob; using (FileStream fsDst = new FileStream(fName, FileMode.CreateNew, FileAccess.Write)) { byte[] bytes = myResBytes; fsDst.Write(bytes, 0, bytes.Length); fsDst.Close(); fsDst.Dispose(); } }