前段時間我在網上發現一篇文章,專門講用ShellExcute來使用cmd.exe裡的ping指令,感覺很新鮮,于是試了一下。我将它做成了單擊事件,使指令隻需用手一點按鈕就能執行!太友善了,還是非常實用的,我把具體過程寫在下面:
原帖:
使用 ShellExecute 來進行 Ping 操作
今日閑來無聊, 看到CSDN上有篇文章說關于 ShellExecute 函數的使用,突發奇想,如何利用 ShellExecute這個好東東來調用 cmd.exe 這個指令提示符程式并賦予一個值給它,讓它自動進行 Ping 操作?
關鍵發現: 先打開MS-DOS 視窗研究,在指令提示字元下輸入 cmd/? ,檢視cmd.exe這個M$一直保留的程式的幫助,有了發現.
//===================================================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses shellapi;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute (Handle,nil,''''cmd.exe'''',''''/K ping 127.0.0.1'''',nil,SW_NORMAL);
//-----這句是使用參數 /K,Ping完 IP 127.0.0.1 後,cmd.exe視窗靜靜的等你看結果哦...
(摘自 http://tech.itdb.cn/n/200608/10/n20060810_59748.shtml)
//ShellExecute (Handle,nil,''''cmd.exe'''',''''/C ping 127.0.0.1'''',nil,SW_NORMAL);
//-----這句是使用參數 /C,Ping完 IP 127.0.0.1 後,cmd.exe視窗消失了...
end;
end.
//=====================================================================
一點感想:
M$開發的程式一般都可以帶參數運作,這個很好啊...帶不同的參數,會有不同的最終結果.這點應該值得肯定.