尝试从mame64.exe获取结果,如-listfull或-createconfig,但在第一个ShellExecute命令中,我得到的结果是第二个我什么都没得到
我使用此代码
begin
vDir:= 'C:\Emu\Mame\Mame64.exe';
vDir2:= 'C:\Emu\Mame\gamelist.txt';
ShellExecute(0, nil, 'cmd.exe',PChar('/C '+ vDir +' -listfull > '+ vDir2),nil, SW_HIDE);
sleep(1000);
ShellExecute(0, nil, 'cmd.exe',PChar('/C '+ vDir +' -createconfig'),nil, SW_HIDE);
sleep(1000);
end;
我无法理解我的错误......
答案 0 :(得分:3)
将在工作目录中创建mame.ini
文件。您没有指定,因此它是从调用进程继承的。在调用进程的工作目录中查找它,可能是Delphi可执行文件所在的目录。
使用Sleep
并不是一个好主意。请勿使用ShellExecute
创建cmd.exe
进程。使用CreateProcess
。然后等待返回的进程句柄,如果需要同步则发出信号。如果您想要更高级,则可以直接创建mame64
进程并使用您创建的匿名管道作为其标准输出。然后你可以避免写任何文件。