2011-06-28 82 views
1

我的FoxPro程序有一個退出按鈕和右上角通常的min/max/X按鈕,並且在使用該程序時消失和似乎已經正確關閉。但是,當我檢查我的任務管理器時,我發現它仍在運行。我的Visual FoxPro應用程序似乎關閉...但仍在任務管理器中運行

這是我MAIN.PRG文件:

ON SHUTDOWN CLEAR EVENTS 
with _screen 
.visible = .f. 
endwith 

DO FORM locations\form1 
READ EVENTS 
ON SHUTDOWN 

,這是我的退出按鈕「click」事件的代碼:

unlock all 
close database all 
clear events 
RELEASE ALL 
quit 

我的程序只有一個形式,它的設置作爲頂級...有關我如何解決這個問題的任何建議?

感謝您的時間和幫助:)

+0

我已經找到了完美的解決方案爲此 - > [http://reydacoco.blogspot.com/2012/03/terminate-executable-application-in.html](http://reydacoco.blogspot.com/2012/03/terminate-executable-application -in.html) – 2012-03-07 09:39:27

回答

2

如果您正在運行從IDE(開發環境)VFP起源,和你做_Screen.Visible = f。,你都躲在主VFP屏幕,系統可能會直接返回該系統,並且由於您無法看到它,因此無法正式退出。

在您的MAIN.PRG中,將以下內容放在底部作爲一個單獨的「函數」,它將在調用堆棧中可見。

function CloseMyApp 
    */ For now, just to "ignore" any errors of any dangling objects trying to get released 
    */ and otherwise might be HIDING an error upon shutdown. 
    on error * 

    */ NOW, clear the event handler and close everything else down 
    clear events 
    close database all 
    close tables 
    on shutdown 

    quit 
endfunc 

然後,在你開始改變你在關機時調用這個「功能」 ......現在,你只發出明確的事件的一個命令。這樣,您可以在關閉之前打包一堆「清理」操作,而不僅僅是清除讀取事件。

ON SHUTDOWN Do CloseMyApp in Main.PRG 
+0

我做了以下更改:我的main.prg現在顯示如下:'ON SHUTDOWN在Main.PRG中使用_screen .visible = .f來執行CloseMyApp。結束與DO FORM位置\ form1 READ EVENTS函數CloseMyApp出錯*清除事件關閉數據庫關閉關閉表上的所有關閉表quitfunc'和我的退出按鈕'單擊'事件代碼是:'在Main.PRG中執行CloseMyApp不幸的是它仍然沒有關閉任務管理器。 – Katie

+0

@katie,嘗試在函數的第一行關閉,添加_screen.visible = .t。在關閉前允許顯示屏幕,並查看可能會將其保留的錯誤。 – DRapp

+0

@ DRapp-我添加了screen.visible代碼,並且沒有任何錯誤信息或與屏幕閃爍不同的區別,因爲它「退出」。我仍然可以看到任務管理器中運行的locations.exe。 – Katie

0

如果您單擊窗體上的EXIT按鈕(您的按鈕)窗體關閉並且應用程序關閉正確?

如果是這樣,假設按鈕被稱爲「cmdExit」那麼這行添加到窗體的「UNLOAD」事件

THISFORM.cmdExit.click()

相關問題