在c 程式中執行DOS命令

2021-07-30 12:53:45 字數 2900 閱讀 8625

**部落格:

#1,system()方式

在c盤根目錄下新建資料夾,名稱為12: system("md c://12");  

執行時命令視窗會閃一下,看不到執行結果;

dos 自身提供了執行多條命令的功能,符號 && 代表同時執行多條命令。

如先切換到c下的12資料夾,然後執行dir命令:cd c:/12 && dir 

暫停三秒後繼續程式:ping -w 3000 w > nul

暫停知道使用者按下任意鍵再執行dir命令:pause && dir

#2,winexec()方式

獲得當前目錄下的檔案列表:winexec("cmd.exe /c dir > result.txt", sw_hide);

執行結果:在當前目錄新建檔案result.txt,裡面的內容就是dir命令的結果。

#3,shellexecute()方式

開啟cmd.exe然後在c盤下新建名為zzz的資料夾:shellexecute(null,"open","c://windows//system32","/c md c://zzz","",sw_show);

shellexecute不僅可以執行exe檔案,也可以執行已經關聯的檔案。  

首先必須引用shellapi.pas單元:uses shellapi;   

1.標準用法  

shellexecute函式原型及引數含義如下:

function shellexecute(hwnd: hwnd; operation, filename, parameters,directory: pchar; showcmd: integer): hinst; stdcall; 

operation:用於指定要進行的操作。其中「open」操作表示執行由filename引數指定的程式,或開啟由filename引數指定的檔案或資料夾;

「print」操作表示列印由filename引數指定的檔案;「explore」操作表示瀏覽由filename引數指定的資料夾。當引數設為nil時, 

表示執行預設操作「open」;

filename:用於指定要開啟的檔名、要執行的程式檔名或要瀏覽的資料夾名;

parameters:若filename引數是乙個可執行程式,則此引數指定命令列引數,否則此引數應為nil或pchar(0);

directory:用於指定預設目錄;

showcmd:若filename引數是乙個可執行程式,則此引數指定程式視窗的初始顯示方式,否則此引數應設定為0。

若shellexecute函式呼叫成功,則返回值為被執行程式的例項控制代碼。若返回值小於32,則表示出現錯誤。

2.特殊用法 

如果將filename引數設定為「http:」協議格式,那麼該函式將開啟預設瀏覽器並鏈結到指定的url位址。若使用者機器中安裝了多個瀏覽器,則該函式將根據windows 9x/nt登錄檔中http協議處理程式(protocols handler)的設定確定啟動哪個瀏覽器。

如:shellexecute(handle, 『open』, http:// ;  www.neu.edu.cn』 , nil, nil, sw_shownormal); 

如:shellexecute(handle, 『open』, http:// ;  www.neu.edu.cn/default.htm』,nil,nil ,  sw_shownormal);

如果將filename引數設定為「mailto:」協議格式,那麼該函式將啟動預設郵件客戶程式,如microsoft outlook(也包括microsoft outlook express),或netscape messanger。若使用者機器中安裝了多個郵件客戶程式,則該函式將根據windows 9x/nt登錄檔中mailto協議處理程式的設定確定啟動哪個郵件客戶程式。

格式一:mailto

如:shellexecute(handle,『open』, 『mailto:』, nil, nil, sw_shownormal);開啟新郵件視窗;

如:shellexecute(handle, 『open』,『 mailto:[email protected]』, nil, nil, sw_shownormal);開啟新郵件視窗,並自動填入收件人位址;

如:shellexecute(handle, 『open』, 『 mailto:[email protected]?subject=hello&body=this is a test』, nil, nil, sw_shownormal);  開啟新郵件視窗,並自動填入收件人位址、郵件主題和郵件正文。若郵件正文包括多行文字,則必須在每行文字之間加入換行轉義字元%0a。

#4,shellexecute()引數

最後的那個引數,為視窗指定可視性方面的乙個命令。

請用下述任何乙個常數

sw_hide 隱藏視窗,活動狀態給令乙個視窗

sw_minimize 最小化視窗,活動狀態給令乙個視窗

sw_restore 用原來的大小和位置顯示乙個視窗,同時令其進入活動狀態

sw_show 用當前的大小和位置顯示乙個視窗,同時令其進入活動狀態

sw_showmaximized 最大化視窗,並將其啟用

sw_showminimized 最小化視窗,並將其啟用

sw_showminnoactive 最小化乙個視窗,同時不改變活動視窗

sw_showna 用當前的大小和位置顯示乙個視窗,不改變活動視窗

sw_shownoactivate 用最近的大小和位置顯示乙個視窗,同時不改變活動視窗

sw_shownormal 與sw_restore相同

#5,windows的一些常用命令

我常用的方式是第一種,簡單粗暴,也挺實用的!

c 中執行dos命令

在程式中若要呼叫外部程式,可以通過引入system.diagnostics命名空間。這裡以呼叫.bat批處理檔案或者dos命令為例。一 呼叫dos命令 需新增的命名空間 using system.diagnostics using system.io public string call strin...

C 中執行Dos命令

doscommand dos命令語句 public string execute string doscommand 執行dos命令,返回dos命令的輸出 dos命令 等待命令執行的時間 單位 毫秒 如果設定為0,則無限等待 返回dos命令的輸出 public static string execu...

C 中執行Dos命令

doscommand dos命令語句 public string execute string doscommand 執行dos命令,返回dos命令的輸出 dos命令 等待命令執行的時間 單位 毫秒 如果設定為0,則無限等待 返回dos命令的輸出 public static string execu...