Visual C#中如何嵌入外部exe并调用? Visual C#中如何嵌入外部exe并调用?比如要将外部程序exe嵌入C#程序中(编译时嵌入在C#的exe中),然后在button1_Click方法中调用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //實例一個Process類,啟動一個獨立進程 Process p = new Process(); //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性: p.StartInfo.FileName = exePath; //設定程序名 p.StartInfo.Arguments = command; //設定程式執行參數 p.StartInfo.UseShellExecute = false; //關閉Shell的使用 p.StartInfo.RedirectStandardInput = true; //重定向標準輸入 p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出 p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出 p.StartInfo.CreateNoWindow = false; //設置不顯示窗口 p.Start(); //啟動 //p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令 //p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機 return p.StandardOutput.ReadToEnd(); 我说的是嵌入外部程序exe,并在button1_Click方法中调用嵌入的exe,不是直接调外部exe。 你要使用它的一些方法的话只能调用dll吧 嵌入- -|||你可以把它加入到Resources.resx里,然后每次打开你的程序时,将其释放到临时目录,用完了可以删除调用方法同1楼 楼上说的“释放到临时目录”,“临时目录”是哪里?我在调用的时候p.StartInfo.FileName设置为什么(涉及到路径问题)? 系统临时文件目录 或者当前程序目录:Environment.GetEnvironmentVariable("Temp")或者Application.StartupPath 文件先保存在Properties.Resources里,然后在释放代码里Byte[]读取Properties.Resources的那个文件,再把Byte[]用File.Write/FileStream写到文件里具体的代码不记得了,晚上回去查查历史记录- -|||百度一下应该会有的 用在主程序里新建一个Appdomain让这个AppDomain调用那个exe 启动主程序后进程里是看不到那个exe的 能讲一下具体做法吗?比如我要将a.exe嵌入,然后调用嵌入的a.exe(注意了,此时不是外部程序的a.exe了)? 你亲自尝试过吗?如果可以的话 p.StartInfo.FileName赋值成什么?我一再说了是作为嵌入资源的a.exe,不是外部程序a.exe。我尝试过,如果作为外部程序,那么p.StartInfo.FileName="a.exe";是正确的,但是作为内嵌资源的话p.StartInfo.FileName="a.exe";是不正确的,会报异常,找不到a.exe的文件。我希望直接调用内嵌的exe,而不希望跟前面9楼所说的释放到硬盘再当外部程序调用。 你的意思是要整和在一起吗?如果是这个意思的话,可以说不能,即使是.dll文件也只是调用的,你要知道,外部的exe的底层编码和你要编译的.net程序的底层代码根本是不通的,.net程序的底层是CL(通用语言),而且运行于CLR(通用语言运行时)之上的 private void button1_Click(object sender,EventArgs e){ Process.Start(@"notepad.exe"); //Start静态方法用于启动一个外部的应用程序..参数是把一个可执行的exe文件目标路径..} 如果作为外部程序,那么p.StartInfo.FileName="a.exe";是正确的,但是作为内嵌资源的话p.StartInfo.FileName="a.exe";是不正确的,会报异常,找不到a.exe的文件。我希望直接调用内嵌的exe,而不希望跟前面9楼所说的释放到硬盘再当外部程序调用 AppDomain a = AppDomain.CreateDomain("A");a.ExecuteAssemblyByName("exe路径") 能讲一下具体做法吗?比如我要将a.exe嵌入,然后调用嵌入的a.exe(注意了,此时不是外部程序的a.exe了)? 这句具体听了还是有点糊涂我的代码是将a.exe的进程合并到你的调用的程序里 所以进程管理器里是看不到a.exe的 a.ExecuteAssemblyByName("exe路径") ?我的exe已经作为资源嵌入了,根本不是外部程序了,何来路径? C# 主窗口和分窗口呼出的问题 请大家指点 WINFORM线程控制进度条 Exception 问题, 急,在线等 Vs2003 新建项目时 写入项目文件时出错 加载类型库/DLL时出错 怎么转换?救命 用C#做个ping ip的小程序.无法获取返回值 two stars,散分ing! 我用c#开发了个windows程序,请教有关数据库返回值的问题--------在线等待 我是c#的初学者,请问点数据库的问题!谢谢高手赐教! 什么是构造函数?能写一个简单的例子么? 关于计算机语言的小问题.
Process p = new Process(); //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:
p.StartInfo.FileName = exePath; //設定程序名
p.StartInfo.Arguments = command; //設定程式執行參數
p.StartInfo.UseShellExecute = false; //關閉Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向標準輸入
p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出
p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出
p.StartInfo.CreateNoWindow = false; //設置不顯示窗口 p.Start(); //啟動 //p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令
//p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機 return p.StandardOutput.ReadToEnd();
调用方法同1楼
系统临时文件目录 或者当前程序目录:
Environment.GetEnvironmentVariable("Temp")
或者
Application.StartupPath
文件先保存在Properties.Resources里,然后在释放代码里Byte[]读取Properties.Resources的那个文件,再把Byte[]用File.Write/FileStream写到文件里
具体的代码不记得了,晚上回去查查历史记录- -|||百度一下应该会有的
让这个AppDomain调用那个exe
启动主程序后进程里是看不到那个exe的
能讲一下具体做法吗?比如我要将a.exe嵌入,然后调用嵌入的a.exe(注意了,此时不是外部程序的a.exe了)?
你亲自尝试过吗?
如果可以的话 p.StartInfo.FileName赋值成什么?
我一再说了是作为嵌入资源的a.exe,不是外部程序a.exe。
我尝试过,如果作为外部程序,那么p.StartInfo.FileName="a.exe";是正确的,但是作为内嵌资源的话p.StartInfo.FileName="a.exe";是不正确的,会报异常,找不到a.exe的文件。我希望直接调用内嵌的exe,而不希望跟前面9楼所说的释放到硬盘再当外部程序调用。
你要知道,外部的exe的底层编码和你要编译的.net程序的底层代码根本是不通的,.net程序的底层是CL(通用语言),而且运行于CLR(通用语言运行时)之上的
private void button1_Click(object sender,EventArgs e)
{
Process.Start(@"notepad.exe");
//Start静态方法用于启动一个外部的应用程序..参数是把一个可执行的exe文件目标路径..}
a.ExecuteAssemblyByName("exe路径")
这句具体听了还是有点糊涂
我的代码是将a.exe的进程合并到你的调用的程序里 所以进程管理器里是看不到a.exe的
a.ExecuteAssemblyByName("exe路径") ?我的exe已经作为资源嵌入了,根本不是外部程序了,何来路径?