gpt4 book ai didi

按住键时 VB6 应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 15:51:37 25 4
gpt4 key购买 nike

我有一个 VB6 应用程序,其表单通过其 KeyPress 事件处理输入。在该方法中,它检查通过一系列 if 语句传入的 ASCII 代码,并运行必要的代码来响应输入。所以,基本格式是:

Private Sub Form_Keypress (KeyAscii As Integer)

If KeyAscii = 97
' Do some stuff

If KeyAscii = 98
' Do some different stuff

End Sub

有 24 个键连接到键盘编码器,可通过信息亭前面的按钮提供输入。操作系统是 Windows 7。我遇到的问题是,如果我按住其中一个键大约十秒钟,应用程序就会崩溃——没有异常(exception),只是停止执行。我确实收集了一些小型转储,我没有看到任何可以给我任何有用信息的东西,但我没有阅读它们的经验。

我需要知道为什么该应用程序似乎无法处理按键流以及如何绕过它。

最佳答案

我会重新编码它看起来更像这样:

Private Sub Form_Keypress (KeyAscii As Integer)
Static bInKeyPress As Boolean
If bInKeyPress = True Then Exit Sub

On Error GoTo Handler

bInKeyPress = True

If KeyAscii = 97
' Do some stuff

ElseIf KeyAscii = 98
' Do some different stuff

' Everything goes through here, after execution is complete.
' Handler also calls through to this, to make sure we clean up things
ExitPoint:
bInKeyPress = False
Exit Sub

'Do any error handling / logging you want, here, then clean things up.
Handler:
GoTo ExitPoint
End Sub

如果您不希望其他任何东西能够重置变量,请在 Sub 本身内部使用静态变量,并且它只会在您的处理完成时切换回 False。如果您认为其他东西应该能够控制是否需要启用 Keypress 功能,请在模块级别使用 Private 变量。

基本上,您希望在处理任何内容时停止听按键。

编辑 :清理了这个以符合评论中的一些建议,并澄清程序流程。

关于按住键时 VB6 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com