標籤:style blog class code java tar
一、
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);
}
}