2010-07-31 99 views
4

如何從我的Delphi應用程序運行此命令?如何從Delphi運行命令行?

C:\ myapppath \ appfolder> appname.exe/STEXT save.txt的

我嘗試下面的代碼:

ShellExecute(0, nil, 'cmd.exe', 'cd C:\myapppath\appfolder', nil, SW_Hide); 
ShellExecute(0, nil, 'cmd.exe', 'appname.exe /stext save.txt', nil, SW_Hide); 

但沒有奏效。誰能提供解決方案?

回答

7

要運行CMD命令,你需要使用的cmd.exe/C標誌:

ShellExecute(0, nil, 'cmd.exe', '/C cd C:\myapppath\appfolder', nil, SW_HIDE); 
ShellExecute(0, nil, 'cmd.exe', '/C appname.exe /stext save.txt', nil, SW_HIDE); 

然而,這將創建兩個不同的會話,因此它不會工作。但是你可以使用的ShellExecute來直接運行appname.exe,就像這樣:

ShellExecute(0, nil, 'appname.exe', '/stext save.txt', nil, SW_HIDE); 

但是,你需要正確指定文件名。

我會做

var 
    path: string; 

begin 
    path := ExtractFilePath(Application.ExeName); 
    ShellExecute(0, nil, PChar(Application.ExeName), PChar('/stext "' + path + 'save.txt"'), nil, SW_HIDE); 
end; 

的情況下appname.exe是當前應用程序。否則,請將Application.ExeName替換爲appname.exe的完整路徑。

+0

WS_HIDE應該是SW_HIDE。我試圖編輯它,但收到消息:編輯必須至少有6個字符... – Zalumon 2013-06-24 09:40:05