C Process呼叫外部程式的實現

2021-10-18 15:53:56 字數 1907 閱讀 9824

前言

使用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...