請問VB6專家.VB6記憶體與工作管理員等問題.

請問VB6專家.VB6記憶體與工作管理員等問題.在執行某一VB6程式[EXE]時.發現以下問題.可否幫忙解惑一下:1. 執行後想中斷一下.將右上角[X]點擊了.但發現居然還在執行.因為最後的完成視窗顯現了.才發現的.用CTRL+ALT+DEL打開工作管理員時看到的.2. 有時還發現沒有正式執行.只是開啟或是有執行或是執行完畢.還一直佔用記憶體.有時好幾個同樣的程式.3. 有時在執行EXE.開啟IE看其他的網頁時.會自動登出.再登入又好了.4. 有時一開始就出現這個錯誤訊息:ActiveX component cant create object5. VB6中的記憶體管理.在清記憶體的指令.該如何撰寫呢.以上又該如何解決呢.謝謝.對不起啊.一題問這麼多.因為都是有關聯性的…..如有不清請發表意見.我再來說明喔.

Update:

還有剛剛出現一個警示視窗===本分類內容僅限18歲以上成人閱覽===可以用VB6來自動點確定嗎!

Update 2:

用了2部NB來跑程式.都會出現這個訊息:

ActiveX component cant create object

但是在另一部的傳統電腦[內有VB6軟體].就沒問題ㄋㄟ....

所以可以肯定的是:可能不是EXE問題.應該是電腦系統問題唄....

Update 3:

但又發現

ActiveX component cant create object

是出在某些網頁

這又該如何處理呢

能不能遇到這種不好的網頁

程式給他跳過去

Update 4:

感謝Jacket ( 初學者 2 級 ):

幫我解決了#1.#2項的困擾.

3.4.5的部份請繼續幫我一下.屬18歲的視窗似乎不受干擾.就不要理他了.

這個ActiveX component cant create object比較嚴重.但似乎是受電腦系統影響.NB筆電比較會出問題[試了2部都是一樣].而傳統式的電腦就不會.不知如何改善.所以應該是系統的問題.程式應該是無關的.

VB6記憶體釋放的部份.除了NOTHING.還有其他的指令嗎.

另外有時網頁開啟不順.一直在讀.也會出現錯誤的訊息.是否可以用限制秒數.如果超過10秒就PASS過去.

Update 5:

這題還真的很難.先延長5天嚕!

Update 6:

感謝妙地大師指點:

請Jacket針對#1。#2項來解答唄。

4 Answers

Rating
  • Jacket
    Lv 4
    9 years ago
    Favorite Answer

    可以在 Form_Unload() 寫 End 讓他關閉,我也遇過相同的情況,VB有時寫出來的程式會出現無法關閉程序的現象,補救方法就是回去再加給行關閉 程式碼。

    2011-10-05 23:06:32 補充:

    恩~

    這個可以應用在:

    例如使用者按下關閉按鈕,如果有尚未存檔的資料,就可利用此方法。

    Private Sub Form_Unload(Cancel As Integer)

    If Text1.text <> "" then 'Text1 內尚有資料

    Cancel=1 '取消關閉

    Else

    End '如果沒有資料,則關閉程式。

    End

    2011-10-05 23:15:35 補充:

    關於VB 記憶體釋放,目前我還知道一個 是釋放 自由陣列的

    自由陣列 EX:

    Dim 變數() as Byte '宣告變數() 為自由變數

    釋放記憶體:

    ReDim 變數(0) '加在程序裡,不是放宣告

    這兩個程式碼,是我拿來寫檔案下載時用到的

    使用自由變數 是我要拿來收資料的 以Byte 計算,應為你不一定知到檔案有多大。

    然後接收完後,寫入資料後,緊接著 ReDim 變數(0) 就能釋放記憶體了。

    2011-10-05 23:19:14 補充:

    還建議您換換 瀏覽器呢~

    EX:Google Chrome OR FireFox

    2011-10-07 19:45:03 補充:

    問題一:執行後想中斷一下.將右上角[X]點擊了.但發現居然還在執行.

    回答:您可以回去在您的程式碼中,在 Private Sub Form_Unload(Cancel As Integer) 加寫一下 End 指令.

    另外 假如您的程式 正在寫入資料,你按中斷 或關閉的話 不一定能完全停下來...

    問題二:有時還發現沒有正式執行.只是開啟或是有執行或是執行完畢.還一直佔用記憶體.有時好幾個同樣的程式.

    回答:VB有時寫出來的程式會出現無法關閉程序的現象,補救方法就是回去再加給行關閉 程式碼,另外 您可以加寫幾行 程序偵測程式碼,就是指一台電腦無法雙開你的程式。

    Source(s): EXP & VB EXP
  • 建議版大

    這題太深與太煩了,恐怕談不下去了,可先將1.2項請>>Jacket<<先 了結,然後再PO題發問其他的,建議而已啦。

  • 9 years ago

    謝謝Jacket ( 初學者 2 級 )

    發現程式碼還真的沒有+end.給它加了試試.謝謝喔.其他的幫忙繼續看看喔.

    Private Sub Form_Unload(Cancel As Integer)

    .....

    .....

    end

    End Sub

    2011-10-05 22:21:36 補充:

    點掉[X]會自動退出了.3Q!

    不再佔用記憶體.謝謝喔.其他的幫忙繼續看看喔.

    2011-10-05 23:22:02 補充:

    感謝Jacket ( 初學者 2 級 )

    意見005不知功能如何.可否再解釋一下. 是我的問題的那一部分ㄋㄟ.

    意見006我抽空在來試試喔.好像有看過題庫.應該是相當不錯的程式碼.

    2011-10-05 23:23:14 補充:

    意見007剛剛才看到.

    不行啊.程式碼都是IE的.而且用的很上手了.

    2011-10-05 23:42:56 補充:

    意見006的釋放記憶體.可以放在Public的部分嗎.而不是程式裡面.是程式碼的最前面.

    那就是所有變數都要一一宣告嗎.

    假如是.那有沒有一次就可以釋放掉所有的變數的指令.

    你的這2個功能.如下.我該如何加入程式碼中ㄋㄟ:

    自由陣列 EX:

    Dim 變數() as Byte '宣告變數() 為自由變數

    釋放記憶體:

    ReDim 變數(0) '加在程序裡,不是放宣告

    準備睡覺囉.明天繼續喔.晚安!

    2011-10-06 07:51:22 補充:

    意見005懂了.我看到這題的程式碼.都是自己儲存資料.也都是強迫關閉的.慢慢懂這個Form_Unload了.謝囉!

    2011-10-06 09:33:14 補充:

    有看過題庫.記憶體的釋放.變數用NOTHING只是將名稱宣告[無]而已.並沒有釋放掉.好像要用close.這點與請大家一起提供卓見喔!

  • 9 years ago

    有時候是不正常關閉(程式碼沒寫好導致的~)

    是需要使用Nothing 釋放記憶體 ~

    這部分就需要你長期寫程式所得到的心得才有辦法去體會到~

Still have questions? Get your answers by asking now.