2013-11-02 36 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" 

它的工作原理非常可靠。

相關問題