ASP.NET、C#调用外部可执行exe文件--多种方案
2020-12-13 01:54
标签:style blog class code java tar 一、 二、 //调用外部程序导cmd命令行 我在ASP.NET中调用,一直想看看到执行窗口,但无论怎么设置参数,都看不到。不知如何。 三、 C#程序作为调用这需要生成一个Progress类,该类提供了调用EXE可执行文件所用到的属性和事件.System.Diagnostics.Process
pExecuteEXE = new System.Diagnostics.Process(); 完成后退出。 这里是一个简单的调用例子,可以效仿: using System; class
test //声明一个程序信息类 //设置外部程序名 //设置外部程序的启动参数(命令行参数)为test.txt //设置外部程序工作目录为
C:\ //声明一个程序类 try //打印出外部程序的开始执行时间 //等待3秒钟 //如果这个外部程序没有结束运行则对其强行终止 ASP.NET、C#调用外部可执行exe文件--多种方案,搜素材,soscw.com ASP.NET、C#调用外部可执行exe文件--多种方案 标签:style blog class code java tar 原文地址:http://www.cnblogs.com/elves/p/3713448.htmltry
{
//方法一
//调用自己的exe传递参数
//Process proc = new Process();
//proc.StartInfo.FileName = @"D:\\hotelsoft\\zk.exe";
//proc.Start();
//Thread.Sleep(3000);//暂停3秒
//foreach (System.Diagnostics.Process pro in
System.Diagnostics.Process.GetProcessesByName("zk"))
//{
// 查找并关闭进程
// pro.Kill();
//}
//方法二
ProcessStartInfo startInfo = new ProcessStartInfo(@"D:\\hotelsoft\\zk.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(startInfo);
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;
p.Start();
/
/向cmd.exe输入command
p.StandardInput.WriteLine("cd
C:\\Inetpub\\wwwroot\\Paicdom\\PaWebService\\PaWeb\\Manage\\Exportcsv");
//cmd又调用了ociuldr.ex
p.StandardInput.WriteLine("ociuldr.exe");
p.StandardInput.WriteLine("exit");
//需要有这句,不然程序会挂机
//string output =
p.StandardOutput.ReadToEnd(); 这句可以用来获取执行命令的输出结果
pExecuteEXE.StartInfo.FileName
= @"E:\Delphi.exe";
pExecuteEXE.StartInfo.Arguments
= "‘paramstr1 paramstr2,paramstr3‘";
pExecuteEXE.Start();
pExecuteEXE.WaitForExit();//无限期等待完成
//pExecuteEXE.WaitForExit(10000);//等待最长10秒钟完成。Delphi可执行程序作为被调用程序,主要是接收参数信息,执行程序,由于程序执行程序完毕不能返回给调用程序信息,只能将信息写入某一位置等待调用者读取。
procedure
TForm1.Button1Click(Sender:
TObject);
var
i:integer;
begin
self.Caption :=‘‘;
for
i:=0 to paramcount do
begin
self.Caption :=self.Caption+
‘[‘+inttostr(i)+‘:‘+paramstr(i)+‘]‘;
end;
end;
*
功 能:通过C#程序调用
Windows 记事本程序 编辑一个
* 名为
test.txt 的文本文件。
*
* 在整个程序中
System.Diagnostics.Process.Start(Info)
*
为主要语句。
* 如果只是单独执行一个外部程序,可用一条如下代码即可:
*
System.Diagnostics.Process.Start(
*
"外部程序名","启动参数");
*/
{
static void
Main()
{
System.Diagnostics.ProcessStartInfo
Info = new
System.Diagnostics.ProcessStartInfo();
Info.FileName
=
"notepad.exe";
Info.Arguments
= "test.txt";
Info.WorkingDirectory =
"C:\\";
System.Diagnostics.Process
Proc ;
{
//
//启动外部程序
//
Proc
=
System.Diagnostics.Process.Start(Info);
}
catch(System.ComponentModel.Win32Exception
e)
{
Console.WriteLine("系统找不到指定的程序文件。\r{0}",
e);
return;
}
Console.WriteLine("外部程序的开始执行时间:{0}",
Proc.StartTime);
Proc.WaitForExit(3000);
if(Proc.HasExited
==
false)
{
Console.WriteLine("由主程序强行终止外部程序的运行!");
Proc.Kill();
}
else
{
Console.WriteLine("由外部程序正常退出!");
}
Console.WriteLine("外部程序的结束运行时间:{0}",
Proc.ExitTime);
Console.WriteLine("外部程序在结束运行时的返回值:{0}",
Proc.ExitCode);
}
}
文章标题:ASP.NET、C#调用外部可执行exe文件--多种方案
文章链接:http://soscw.com/essay/24456.html