2012-06-25 25 views
3

我在通過Windows關閉時遇到了VB6應用程序鎖定問題Restart Manager。 在Inno安裝程序中使用新的重新啓動管理器支持時,這是非常明顯的,甚至發生在已編譯的空白VB6項目中。VB6應用程序在通過重啓管理器關閉時鎖定

當我添加記錄到QueryUnloadUnload事件,我看到下面的順序:

QueryUnload(vbAppWindows) 
Unload() 
QueryUnload(vbAppTaskManager) 

在此之後,VB6的過程似乎鎖定了VB6運行時中和過程調用重新啓動經理最終超時並放棄。

一個類似的問題已被報告before buit沒有明智的決議。

回答

6

2007年在Windows Application Compatability論壇上曾對此進行過討論。

所提出的解決辦法是添加到您的主窗體的QueryUnload事件處理程序的結尾:

'For Vista Certification requirement. 
'Handles TEST CASE 30. Verify the application is Restart Manager Aware. 
If UnloadMode = vbAppWindows Then Unload Me 

看來,VB6運行時不處理關機消息之一正確等等重新啓動管理器然後發送一個更強制關閉消息,導致運行時鎖定。

我已經用相當複雜的多進程VB6應用程序確認了此修復程序,並且它都正確關閉,沒有明顯的不良影響。

+0

不錯,每天學點新東西 – tcarvin

+0

+1。這也是[2010年討論](https://groups.google.com/forum/?hl=en&fromgroups#!searchin/microsoft.public.vb.general.discussion/%22restart$20manager%22/microsoft.public。 vb.general.discussion/MCyT4bVyuvc/etTVRsmJ5mwJ)由VB6新聞組的大師,有類似的結論 – MarkJ

+0

啊,是的,我參與了該線程,當我需要找出我自己2年後不知不覺地對我來說:)我'我已經更新了問題鏈接到GG,而不是我首先發現的NNTP刮板。 – Deanna

相關問題