我没有在帮助中找到对 Shellexec 和 Exec 之间区别的详尽解释。是个
Shellexec('','program.exe',params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode)
相当于
Exec('program.exe',params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode)
使用 exe 文件时?当然,当我想执行与 exe 或批处理不同的文件时,请使用 Shellexec。
然而,有时我无法通过 Shellexec 或 Exec 让我的指令正常工作。唯一始终有效的解决方案是编写一个批处理文件并通过 shellexec 运行它。我个人不喜欢这个解决方案,因为我必须处理一个临时文件并且我不相信获得的结果代码。现在我必须回到批处理文件解决方案,因为我不知道如何让这个指令工作:(错误是如果目标文件不存在,它会引发指令失败,而在命令提示符下即使目标文件不存在,该指令也有效)。
mysqldump := 'C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysqldump.exe';
params := '-uroot -ppassword myschema>C:\myappdir\backup\newbackup.sql';
//the destination folder exists, the file newbackup.sql does not exist
Shellexec('',mysqldump,params,'',SW_HIDE,ewWaitUntilTerminated,ResultCode);
我正在使用 Windows 7 64 位,程序(Inno Setup 安装程序)以管理权限运行