前言
使用c#呼叫外部程式,一種是通過process類,一種是通過命令列,本文主要說一下使用c#中的process類呼叫外部程式的方式。
過程:1. 建立process物件
2. 配置啟動選項(輸入、輸出等)
3. 切換工作目錄
4. 設定外部程式名
5. 設定傳入引數
6. 啟動外部程式
7. 等待外部程式結束
8. 關閉外部程式
過程建立process物件12
34process process = new process();
//通過new建立乙個process物件 process
//使用process類需要在程式最開始處引用process類所在命名空間,即下面這句
using system.diagnostics;
配置啟動選項12
34process.startinfo.useshellexecute = false; //必要引數
process.startinfo.redirectstandardoutput = true;//輸出引數設定
process.startinfo.redirectstandardinput = true;//傳入引數設定
process.startinfo.createnowindow = true;
切換工作目錄
1、工作目錄:程式執行時其啟動檔案以及配置檔案等檔案的所在目錄。比如在桌面上選中qq,右鍵單擊「開啟檔案所在位置」,這個目錄就是qq執行起來後的工作目錄。
我們當前編寫的c#程式執行後也有自己的工作目錄,因此如果要在c#中呼叫外部程式,最好在呼叫前將當前工作目錄切換為外部程式的工作目錄。
2、檢視當前工作目錄
以下兩種**都可以列印出當前程式的工作目錄
system.io.directory.getcurrentdirectory();
該函式以sting型別返回當前工作目錄,可以使用控制台列印當前工作目錄。
第一種方法列印的是工作目錄,是動態的(工作目錄可更改)
3、切換當前工作目錄為外部程式工作目錄12
system.io.directory.setcurrentdirectory (外部程式工作目錄);
//外部程式工作目錄以字串形式給出,且必須是絕對路徑
比如當前c#所在程式的路徑為 c:/deskop/c#/bin/debug/
這裡就可以寫成12
process.startinfo.filename = "nasm.exe";
//等價於"c:\\deskop\\c#\\bin\\debug\\nasm\\nasm.exe"
設定傳入引數
光有程式不行,還需要指定讓這個程式執行什麼操作,這個操作就通過傳入引數傳遞。
比如在nasm下要將其工作目錄下的mysourcescode目錄下的demo02.asm編譯鏈結生成4.obj檔案(生成在mysourcescode目錄下),就需要開啟nasm,輸入如下命令
1nasm mysourcescode/demo02.asm -o mysourcescode/4.obj
nasm是程式名,後面的就是nasm的傳入引數,也就是我們需要設定的東西。
1process.startinfo.arguments = "mysourcescode\\demo02.asm -o mysourcescode\\4.obj ";
程式啟動、等待執行、關閉12
3process.start();
process.waitforexit();//等待程式執行完退出程序
process.close();
完整**
外部程式所在目錄
外部程式原始檔_目標檔案所在目錄
c#呼叫外部程式後生成的目標檔案
到此這篇關於c# process呼叫外部程式的實現的文章就介紹到這了
呼叫外部程式
下面是呼叫外部程式的 system.diagnostics.processstartinfo info new system.diagnostics.processstartinfo 這裡是你要呼叫到的外部程式 info.filename vmdotnet v2.0.50727 fetionvm.e...
C 程式呼叫外部程式
程式語言 visual studio net c beta 2 作 者 迪泊威 名為 test.txt 的文字檔案。在整個程式中 system.diagnostics.process.start info 為主要語句。如果只是單獨執行乙個外部程式,可用一條如下 即可 system.diagnosti...
C 程式呼叫外部程式
程式語言 visual studio net c beta 2 名為 test.txt 的文字檔案。在整個程式中 system.diagnostics.process.start info 為主要語句。如果只是單獨執行乙個外部程式,可用一條如下 即可 system.diagnostics.proce...