ASP.NET、C#调用外部可执行exe文件--多种方案
2014-05-07 11:56
666 查看
一、
二、
//调用外部程序导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可执行文件所用到的属性和事件.System.Diagnostics.Process pExecuteEXE = new System.Diagnostics.Process();
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(
* "外部程序名","启动参数");
*/
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);
}
}
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可执行文件所用到的属性和事件.System.Diagnostics.Process pExecuteEXE = new System.Diagnostics.Process();
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(
* "外部程序名","启动参数");
*/
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);
}
}
相关文章推荐
- ASP.NET中使用C#调用服务器端exe可执行文件
- C# ASP.NET Webservice调用外部exe无效的解决方法
- C# ASP.NET Webservice调用外部exe无效的解决方法
- 如何在asp.net中调用外部exe文件
- C# ASP.NET Webservice调用外部exe无效的解决方法
- C#调用外部可执行exe文件
- C#调用外部可执行exe文件
- C#和asp.net执行外部EXE程序
- C#中利用process类调用外部程序以及执行dos命令 - ASP.NET
- C# ASP.NET Webservice调用外部exe无效的解决方法
- 在asp.net 2.0中的web.config文件中调用外部文件
- C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation
- 在asp.net 2.0中的web.config文件中调用外部文件
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 【VB.NET】执行外部ExE文件
- net C#如何调用EXE文件
- asp.net网页中调用c#写的dll文件
- C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件
- asp.net中执行exe应用程序2008-07-03 15:53在asp.net中执行应用程序有两种方法:1、调用win32函数ShellExecute。2、用.NET Framework中的Process类。下面我分别用这两种方法执行Windows中的
- C#调用可执行文件(.bat,.exe...)