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