在編寫程式時經常會使用到呼叫可執行程式的情況,本文將簡單介紹c#呼叫exe的方法。在c#中,通過process類來進行程序操作。 process類在system.diagnostics包中。
using system.diagnostics;
process p = process.start("notepad.exe");
p.waitforexit();//關鍵,等待外部程式退出後才能往下執行
通過上述**可以呼叫記事本程式,注意如果不是呼叫系統程式,則需要輸入全路徑。
當需要呼叫cmd程式時,使用上述呼叫方法會彈出令人討厭的黑窗。如果要消除,則需要進行更詳細的設定。
process類的startinfo屬性包含了一些程序啟動資訊,其中比較重要的幾個
filename 可執行程式檔名
arguments 程式引數,已字串形式輸入
createnowindow 是否不需要建立視窗
useshellexecute 是否需要系統shell呼叫程式
通過上述幾個引數可以讓討厭的黑屏消失
system.diagnostics.process exep = new system.diagnostics.process();
exep.startinfo.filename = binstr;
exep.startinfo.arguments = cmdstr;
exep.startinfo.createnowindow = true;
exep.startinfo.useshellexecute = false;
exep.start();
exep.waitforexit();//關鍵,等待外部程式退出後才能往下執行
或者
system.diagnostics.process exep = new system.diagnostics.process();
system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo();
startinfo.filename = binstr;
startinfo.arguments = cmdstr;
startinfo.createnowindow = true;
startinfo.useshellexecute = false;
exep.start(startinfo);
exep.waitforexit();//關鍵,等待外部程式退出後才能往下執行
process p = process.start("notepad.exe");
p.waitforexit();//關鍵,等待外部程式退出後才能往下執行
string name = "aaa";//程式程序名稱
int progresscount = 0123456;//判斷程序是否執行的標識
process prc = process.getprocesses();
foreach(process pr in prc) //遍歷整個程序
}if(progresscount!=0)//如果計數器不為0,說名所指定程式沒有執行
catch(exception d)
}else
命名空間是using system.diagnostics;
程式原始碼為:
privater void staartform()
```
C 呼叫外部程式
關於三個sdk函式 winexec,shellexecute,createprocess的其他注意事項 定義標頭檔案 必須定義以下兩個標頭檔案 include 可替換為 windows.h include如果定義了標頭檔案 include 的話就不必定義 include 了。定義路徑 c 中所表示的...
C 呼叫外部程式
process.enableraisingevents true 是否激發關閉事業 new eventhandler process exited process.exittime 獲取程序退出時間 process.ha ited 程序是否已終止 process.kill 關閉當前程序 proces...
c 呼叫外部程式
留底 system.diagnostics.processstartinfo info new system.diagnostics.processstartinfo info.filename vmdotnet v2.0.50727 fetionvm.exe 這裡是你要呼叫到的外部程式 info....