2013-07-01 191 views

回答

0

你不可能真的。至少不安全。請參閱PRB: Call to ExitProcess() from Visual Basic Application Hinders Process Exit

已知調用ExitProcess()會導致問題的一個特定實例涉及COM對象。如果Visual Basic應用程序在調用ExitProcess()時具有對進程外COM對象的出色引用,調用進程可能會「掛起」或導致訪問衝突。在調用ExitProcess()之前立即直接調用CoUninitialize()通常可以防止此問題。儘管此方法可以解決此問題,但不建議或不受Microsoft的支持。

從Visual Basic應用程序中調用ExitProcess()所產生的唯一優點是可以爲進程設置退出代碼。但是由於從Visual Basic中調用ExitProcess()具有不可預知的性質,最好通過其他方式來傳遞進程的成功或失敗,例如將退出代碼寫入文件或將窗口消息發送到另一個進程。

0

發明一種與調用進程或命令行進行通信的不同方式可能是最容易的。

但你可能從VB6使用卡爾彼得森的method of creating a console app?然後使用Con.ExitCode = 1(如第二個示例所示)。

他正在發佈一個免費的加載項vbAdvance,可以幫助您構建控制檯應用程序。

免責聲明:改編自我回答這個similar question

+0

他'Con.ExitCode'是你應該*不*做一個例子。爲了儘可能安全,您必須確保所有對象在退出「Sub Main」之前已釋放,並且最後必須使用typelib定義而不是「Declare Function」來調用ExitProcess()。 – Bob77

+0

鏈接已死:( –

+0

看起來像卡爾移動他的網站在這裏http://test.epeterson.net/tools/vbAdvance/ – MarkJ