在Windows98中使用VB5.0編程疑難一解
2019-11-18 17:52:23
供稿:網友
----隨著Windows98正式版的推出,越來越多的人開始關注它。本人最近也在機器中安裝了一套,的確發現許多新的東西,操作更加自如、方便,但是,最近在Windows98下使用VB5.0編程卻遇到了一個大難題:原來在Windows95中編寫的VB可執行程序卻怎么也不能運行,總是提示:"該程序執行了非法操作,即將關閉。如果仍有問題,請與程序供應商聯系。"當我查看詳細資料則顯示:"user.exe中導致常規保護錯誤。地址在某某處……"。于是,我試了很多辦法,苦思冥想了一天,終于發現了問題所在。原來問題出現在文本框的Change過程代碼上。
----程序出問題的代碼是這樣的,在Win95中,我建立了一個口令輸入的窗體,窗體中只有一個文本輸入框Text1,當輸入正確的口令后,程序將自動進入下一個模塊。在Text1的Change過程中有以下語句:
IfLen(Trim(Text1.Text))<4Then'口令的長度為4位
ExitSub
Else
IfText1.text="1111"'這里假定正確口令為:1111
MsgBox"口令正確!",0,"提示"
UnloadMe
'口令正確,開始執行下一個窗體
Else
MsgBox"對不起!口令不正確!",0,"提示"
Text1.Text=""
'口令不正確,繼續輸入口令
EndIf
EndIf
----該段代碼在Win95下用Vb5.0編譯通過后,連同其它程序一起生成一個可執行文件,在Win95中執行該文件,運行到口令輸入窗體時,沒有發生任何問題,可是,當該程序原封不動地拿到Win98中同樣用Vb5.0編譯通過后,在Win98中執行該可執行文件,當運行到口令輸入窗體時,不論口令輸入正確與否,系統都會提示上面所說的嚴重錯誤,然后便退出程序,回到Win98中。
----經過反復的調試,終于發現問題原來出現在代碼Change上,在Win98中不知為何無法執行這個Change過程,而在Win95中卻沒有任何問題!
----在修改后的程序中,我將上面的這些代碼放在了Text1的KeyDown過程中,并做了以下改動:(注意:當輸入完口令后,還需要按回車鍵確認一下,其實任何鍵都可以,除了退格鍵以外。)
IfKeyCode=vbKeyBackThen
'這里必須把退格鍵的判斷取消
ExitSub
EndIf
IfLen(Trim(Text1.Text))<4Then'口令的長度為4位
ExitSub
Else
IfText1.text="1111"'這里假定正確口令為:1111
MsgBox"口令正確!",0,"提示"
UnloadMe
'口令正確,開始執行下一個窗體
Else
MsgBox"對不起!口令不正確!",0,"提示"
Text1.Text=""
'口令不正確,繼續輸入口令
EndIf
EndIf
----這樣,程序在Win98中用Vb5.0再次編譯生成可執行文件,便可以順利運行了,運行到口令輸入窗體時便不會發生錯誤。問題雖然已經解決,可是為什么在Win98中Change過程為何會出錯?究竟是Win98的問題,還是Vb的限制,筆者不得而知。
----在Windows98中遇到的一些小問題
----Windows98增加了許多新的東西,說心里話,的確很不錯,可是我卻發現了許多讓人迷惑的問題,在這里列舉一二,希望能引起注意,或許使用過Win98的細心的朋友早已經發現了這些問題。
----1.在Win98的第二級開始菜單中,可以用鼠標所以移動菜單項到任何位置,可是當你再次打開開始菜單時,菜單卻又恢復了原樣,不知道為什么??墒牵谠瓉淼腤in95中,當你安裝了IE4.0以后,這些移動菜單位置的操作卻非常好用,沒有任何問題。
----2.當你打開了多個應用程序時,在屏幕下方的狀態條中應顯示他們的狀態,可是當你關掉這些應用程序時,狀態條中卻仍然顯示一些空白的按鈕,總也清除不徹底,只有用鼠標點一下,它們才回消失,這在Win98中和裝了IE4.0的Win95中經常遇到。
----3.Win98的漢字輸入條,在某些應用程序中經常無法彈出或者顯示錯誤。->