命令列程式增加 GUI 外殼

2022-01-23 15:25:00 字數 1704 閱讀 4608

圖 1 命令列程式工作介面

現在想辦法為它做乙個 gui 外殼,實際效果參考圖 2.

圖 2 帶 gui 外殼的命令列程式

程式思路是這樣的:

通過執行cmd.exe來操作命令行,現在要給它乙個 gui.

windows 的命令列cmd.exe\(\rightarrow\) 新程序process\(\rightarrow\) winform \(\rightarrow\) gui

這一過程用到了system.diagnostics.process程序類來執行和管理cmd.exe.

process介紹如下:

提供對本地和遠端程序的訪問並使您能夠啟動和停止本地系統程序.

process元件提供對正在計算機上執行的程序的訪問. 用最簡短的話來說,程序就是當前執行的應用程式. 執行緒是作業系統向其分配處理器時間的基本單位. 執行緒可執行程序的任何一部分**,包括當前由另一線程執行的部分.

對於啟動、停止、控制和監視應用程式等任務,process元件是很有用的工具. 使用process元件,可以獲取正在執行的程序的列表,或者可以啟動新的程序.process元件用於訪問系統程序. 初始化process元件後,可使用該元件來獲取有關當前執行的程序的資訊. 此類資訊包括執行緒集、載入的模組(.dll.exe檔案)和效能資訊(如程序當前使用的記憶體量).

先給cmd.exe乙個程序p.

process p; // 程序

streamwriter input; // 輸入資料流

public form1()

執行命令:

private void button1_click(object sender, eventargs e)

讀取命令列的響應:

void p_outputdatareceived(object sender, datareceivedeventargs e)

因為是在另乙個程序中非同步讀取資料,所以update裡是不能直接修改輸出textboxtext屬性的(不是同乙個執行緒). 用乙個簡單的委託解決這個問題.

delegate void updatedelegate(string msg);

void update(string msg)

); else

textbox2.text += msg;

}

參考源**:download

the end. \(\box\)

C 呼叫命令列程式

using system using system.collections.generic using system.linq using system.text using system.diagnostics 執行cmd命令 會顯示命令視窗 指定應用程式的完整路徑 執行命令列引數 static ...

如何debug命令列程式 C

常用的2種方法 方法1在main 函式剛開始,加入如下 1 static int main string args 2 這樣能讓程式在此停住,等待輸入。此時便可以在vs中attach上該程式,開始debug。此方法在需要debug各種引數時比較方便。方法2直接在vs中開啟project proper...

在程式裡呼叫命令列程式

在程式裡呼叫命令列程式,一位cnblog的仁兄寫的 process早就有辦法了,只不過我沒有注意.如呼叫乙個命令列 cmd c dir c winnt 把結果放到乙個字串裡.processstartinfo psi new processstartinfo cmd c dir c winnt psi...