Delphi 如何执行程序,然后发送命令行文本

Delphi 如何执行程序,然后发送命令行文本,delphi,command-line,shellexecuteex,Delphi,Command Line,Shellexecuteex,我可以用ShellExec打开一个外部程序 ret := ShellExecute(handle, 'open', PChar(filename), nil, nil, SW_NORMAL); 但我想向它发送如下命令: msg := 'open ftp://MyUser:MyPass@www.website.com'; 这可能吗?我想可能,但这不是最好的方法。最好的方法是使用CreateProcess。这是一个更复杂的API,但它会使您尝试的内容更简单 程序如下: 创建一个或两个管道。您需

我可以用ShellExec打开一个外部程序

 ret := ShellExecute(handle, 'open', PChar(filename), nil, nil, SW_NORMAL);
但我想向它发送如下命令:

msg := 'open ftp://MyUser:MyPass@www.website.com';

这可能吗?

我想可能,但这不是最好的方法。最好的方法是使用
CreateProcess
。这是一个更复杂的API,但它会使您尝试的内容更简单

程序如下:

  • 创建一个或两个管道。您需要一个用于孩子的标准输入。如果希望捕获其输出,则需要另一个
  • 调用
    CreateProcess
    创建子进程。将第一个管道的读取端连接到中的儿童标准。将第二个管道的写入端附加到子管道的标准输出
  • 如果要发送命令,请写入第一个管道。当您希望读取输出时,请从第二个管道读取 如果您不熟悉这种编码,这可能会让人望而生畏。你最好能找到一个简单的图书馆

    这篇MSDN文章演示了如何:


    既然您似乎想要使用FTP,那么最好避免使用外部进程。使用像印地这样的图书馆

    第四个参数--
    ShellExecute(句柄'open',PChar(文件名),'openftp://MyUser:MyPass@www.website.com',无,西南师范大学)