DELPHI如何向 CMD里发送命令。不是调用别的程序,而是在里面写一些带参数的命令,如:ipconfig/all

解决方案 »

  1.   

    Shellexecute ,后面有个带参数的
    createprocess 也可以带参数
      

  2.   

    WinExec(PChar( 'cmd   /k   dir '),SW_SHOWNORMAL)
    就像这样
      

  3.   

    如果需要更多的操控性,可以使用 DosCommand.TDosCommand
      

  4.   

    delphi调用cmd的两种方法
    1
    var
    s:string;
    begin
    s:='cmd.exe /c '+edit1.Text+' >c:\1.txt'; //将结果保存到c:\1.txt
    winexec(pchar(s),sw_hide);
    sleep(2000);
    memo1.Lines.LoadFromFile('c:\1.txt');
    2
    shellexecute(handle,nil,'cmd.exe',pchar(form2.edit1.text),nil,sw_hide);
    WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW);
    ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 
    首先必须引用shellapi.pas单元:uses ShellAPI;ShellExecute函数原型及参数如下:
    function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
     
      

  5.   

    感谢各位,其实以上的函数我都试了,一知半解的,
    其实我想实现的效果很简单,
    第一步:调出CMD窗口
    第二步:在里面写入命令并回车
      

  6.   

    非常感谢各位的回答 
    在D中有一个叫做“console application”的东西,这个东西和DOS命令有什么区别吗?可以用这个东东代替CMD中的命令行吗。
      

  7.   


    program Project3;
    {$APPTYPE CONSOLE}uses
    SysUtils, Windows;procedure LoadTxt;
    var
    f: TextFile;
    s: string;
    begin
    if FileExists('c:\1.txt') then
    begin
    AssignFile(f, 'c:\1.txt');
    Reset(f);
    try
    while not eof(f) do
    begin
    Readln(f, s);
    Writeln(s);
    end;
    finally
    closefile(f);
    end;
    end;end;var
    commend: AnsiString;
    begin
    while True do
    begin
    commend := '';
        Writeln('请输入命令:');
    Readln(commend);
    if commend <> '' then
    begin
    commend := 'cmd.exe /c ' + commend + ' >c:\1.txt';
    winexec(PAnsiChar(commend), sw_hide);
    Sleep(2000);
    LoadTxt;
    end;
    end;end.