圖 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
裡是不能直接修改輸出textbox
的text
屬性的(不是同乙個執行緒). 用乙個簡單的委託解決這個問題.
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...