gpt4 book ai didi

vb6 - 使用 vbAccelerator Win32 Hook 与 VB IDE 一起导致应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 07:57:48 25 4
gpt4 key购买 nike

我正在开发 VB6 项目,我需要为工具栏控件上的按钮提供键盘快捷键。为了实现这一点,我使用了 vbAccelerator 中的 Win32 Hooks 库。 。这是我的 IWindowsHook_HookProc 函数,我用它来检索击键并根据按下的快捷键执行操作(Ctrl + N 表示新建,< kbd>Ctrl + O 用于打开,Ctrl + S 用于保存),但我不知道出了什么问题导致我的应用程序和 VB6 IDE 一起崩溃的代码。该功能目前不完整,因为我只是尝试识别 Ctrl + N 组合键来测试此功能。请帮帮我......:-|

Private Function IWindowsHook_HookProc(ByVal eType As EHTHookTypeConstants, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long, bConsume As Boolean) As Long
If KeyboardlParam(lParam).KeyDown Then
Select Case True
Case Me.ActiveControl = Me
If wParam = vbKeyControl + vbKeyN Then
frmNewReport.show
bConsume = True
End If
End Select
End If

最佳答案

在 IDE 中使用钩子(Hook)可能会导致大量崩溃,在没有完全理解自己在做什么的情况下使用钩子(Hook)会导致大量崩溃......

Mark 关于显示形式的计时器的说法是正确的,因为 Hook 函数应该尽可能快地返回(< 50 毫秒),否则您将很快陷入死锁(和崩溃的应用程序)。切勿在 Hook 过程中设置断点,否则您将杀死您的 IDE(可能会崩溃,可能会挂起,可能会出现某种奇怪的状态,即您永远无法留下断点并且无法停止调试)。如果您有大量需要基于按键运行的长时间运行的函数,请设置一堆要在计时器中执行的操作。使用钩子(Hook)库非常强大,但强大的功能也会带来严重的崩溃......

关于vb6 - 使用 vbAccelerator Win32 Hook 与 VB IDE 一起导致应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3502888/

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