c 呼叫外部程式

2021-10-05 11:18:53 字數 1871 閱讀 8953

在編寫程式時經常會使用到呼叫可執行程式的情況,本文將簡單介紹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....