使用vbAccelarator Win32 Hook与VB IDE一起使应用程序崩溃

问题描述 投票:0回答:3

我正在VB6项目中工作,在该项目中,我需要具有工具栏控件上的按钮的键盘快捷键。为此,我使用了vbAccelerator中的Win32 Hooks库。这是我的IWindowsHook_HookProc函数,用于检索快捷键并根据按下的快捷键执行操作(对于新键,<< Ctrl >> + N,对于<< 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

我正在VB6项目中工作,在该项目中,我需要具有工具栏控件上的按钮的键盘快捷键。为此,我使用了vbAccelerator中的Win32 Hooks库。这是我的...
vb6 keyboard-hook crash
3个回答
2
投票
标记带有显示表单的计时器是正确的,因为挂钩函数应尽快返回(<50毫秒),否则您将很快死锁(并导致崩溃的应用程序)。切勿在Hook过程中设置断点,否则您将杀死IDE(也许崩溃,挂起,也许有些怪异的状态,因为您永远不会离开断点并且无法停止调试)。如果您要基于按键来运行大量长时间运行的功能,请设置要在计时器中执行的操作堆栈。使用钩子库非常强大,但是强大的功能会导致严重的崩溃...

1
投票

0
投票
Ctrl
© www.soinside.com 2019 - 2024. All rights reserved.