2013-11-02 35 views
1

我正在使用Delphi XE2和madExcept。我想在构建完成后运行一个流程,包括在构建过程结束时发生的madExcept事件。构建完成后运行后构建过程

将我的批处理文件放入post-build events会导致我的批处理文件在madExcept工具完成之前运行。我想也许我可以使用DOS start命令产生一个分离的进程,该命令可以暂停几秒钟,以便构建完成,然后暂停的进程可以完成其任务。我尝试以下作为生成后命令:

start "" cmd /c "timeout /t 5&RunPostBuild.bat" 

然而,代替打开单独的窗口,并继续生成过程中,Delphi的打开一个窗口,等待时间为5秒,运行RunPostBuild.bat然后结束构建过程。结果是一样的; RunPostBuild.bat仍然运行之前 madExcept做它的东西。

有没有人知道如何真正在构建过程的结束自动运行一个过程,包括madExcept的东西?

回答

2

如果您可以禁用madExcept在IDE中执行的后处理,则可以通过运行madExceptPatch.exe将其添加为构建后操作的一部分。 The madExcept FAQ建议使用-gd标志。

+1

这正是我如何处理这个问题。事实上,我没有安装madExcept包,只是在我的后期构建中做了一个普通的makexceptpatch。 –

+0

我更喜欢这个解决方案。多谢你们! –

0

似乎没有办法从IDE单独做到这一点。但是,如果您创建一个计划任务以便运行一次,请删除触发器(因此只需保留该任务,而无需计划何时运行),那么您可以将命令添加到post-build events以按需运行任务。即使任务尚未完成,Delphi也会立即返回并完成构建过程。

通过将timeout /t 5置于计划任务运行的批处理文件的开始位置,IDE完成构建后将经过5秒,然后执行批处理文件中的其余命令。

命令添加到post-build events是:

schtasks /run /tn "Name of scheduled task" 

它的工作原理非常可靠。

相关问题