ASP.NET、C#调用外部可执行exe文件--多种方案

一、

try
{
//方法一
//调用自己的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());
}

二、

//调用外部程序导cmd命令行
    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(); 这句可以用来获取执行命令的输出结果

我在ASP.NET中调用,一直想看看到执行窗口,但无论怎么设置参数,都看不到。不知如何。

三、

C#程序作为调用这需要生成一个Progress类,该类提供了调用EXE可执行文件所用到的属性和事件.ASP.NET、C#调用外部可执行exe文件--多种方案System.Diagnostics.Process pExecuteEXE = new System.Diagnostics.Process();
ASP.NET、C#调用外部可执行exe文件--多种方案pExecuteEXE.StartInfo.FileName = @"E:\Delphi.exe";
ASP.NET、C#调用外部可执行exe文件--多种方案pExecuteEXE.StartInfo.Arguments = "'paramstr1 paramstr2,paramstr3'";
ASP.NET、C#调用外部可执行exe文件--多种方案pExecuteEXE.Start();
ASP.NET、C#调用外部可执行exe文件--多种方案pExecuteEXE.WaitForExit();//无限期等待完成
ASP.NET、C#调用外部可执行exe文件--多种方案//pExecuteEXE.WaitForExit(10000);//等待最长10秒钟完成。Delphi可执行程序作为被调用程序,主要是接收参数信息,执行程序,由于程序执行程序完毕不能返回给调用程序信息,只能将信息写入某一位置等待调用者读取。
ASP.NET、C#调用外部可执行exe文件--多种方案procedure    TForm1.Button1Click(Sender:    TObject);   
ASP.NET、C#调用外部可执行exe文件--多种方案    
ASP.NET、C#调用外部可执行exe文件--多种方案var   
ASP.NET、C#调用外部可执行exe文件--多种方案       i:integer;   
ASP.NET、C#调用外部可执行exe文件--多种方案begin   
ASP.NET、C#调用外部可执行exe文件--多种方案     self.Caption   :='';   
ASP.NET、C#调用外部可执行exe文件--多种方案    for i:=0 to paramcount do
ASP.NET、C#调用外部可执行exe文件--多种方案     begin   
ASP.NET、C#调用外部可执行exe文件--多种方案         self.Caption   :=self.Caption+ '['+inttostr(i)+':'+paramstr(i)+']';   
ASP.NET、C#调用外部可执行exe文件--多种方案     end;   
ASP.NET、C#调用外部可执行exe文件--多种方案    
ASP.NET、C#调用外部可执行exe文件--多种方案end;   
ASP.NET、C#调用外部可执行exe文件--多种方案

完成后退出。

这里是一个简单的调用例子,可以效仿:
*   功         能:通过C#程序调用   Windows   记事本程序   编辑一个
*   名为   test.txt   的文本文件。
*
*   在整个程序中   System.Diagnostics.Process.Start(Info)  
*   为主要语句。
*   如果只是单独执行一个外部程序,可用一条如下代码即可:
*   System.Diagnostics.Process.Start(
*   "外部程序名","启动参数");
*/

using   System;

class   test
{
static   void   Main()
{

//声明一个程序信息类
System.Diagnostics.ProcessStartInfo   Info   =   new   System.Diagnostics.ProcessStartInfo();

//设置外部程序名
Info.FileName   =   "notepad.exe";

//设置外部程序的启动参数(命令行参数)为test.txt
Info.Arguments   =   "test.txt";

//设置外部程序工作目录为   C:\
Info.WorkingDirectory   =   "C:\\";

//声明一个程序类
System.Diagnostics.Process   Proc   ;

try
{
//
//启动外部程序
//
Proc   =   System.Diagnostics.Process.Start(Info);
}
catch(System.ComponentModel.Win32Exception   e)
{
Console.WriteLine("系统找不到指定的程序文件。\r{0}",   e);
return;
}

//打印出外部程序的开始执行时间
Console.WriteLine("外部程序的开始执行时间:{0}",   Proc.StartTime);

//等待3秒钟
Proc.WaitForExit(3000);

//如果这个外部程序没有结束运行则对其强行终止
if(Proc.HasExited   ==   false)
{
Console.WriteLine("由主程序强行终止外部程序的运行!");
Proc.Kill();
}
else
{
Console.WriteLine("由外部程序正常退出!");
}
Console.WriteLine("外部程序的结束运行时间:{0}",   Proc.ExitTime);
Console.WriteLine("外部程序在结束运行时的返回值:{0}",   Proc.ExitCode);
}
}

上一篇:[poj-2985]The k-th Largest Group_Treap+并查集


下一篇:URAL 1244. Gentlemen(DP)