----随着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的第二级开始菜单中,可以用鼠标所以移动菜单项到任何位置,可是当你再次打开开始菜单时,菜单却又恢复了原样,不知道为什么。可是,在原来的Win95中,当你安装了IE4.0以后,这些移动菜单位置的操作却非常好用,没有任何问题。
----2.当你打开了多个应用程序时,在屏幕下方的状态条中应显示他们的状态,可是当你关掉这些应用程序时,状态条中却仍然显示一些空白的按钮,总也清除不彻底,只有用鼠标点一下,它们才回消失,这在Win98中和装了IE4.0的Win95中经常遇到。
----3.Win98的汉字输入条,在某些应用程序中经常无法弹出或者显示错误。->