我正在使用通过com自动化Excel的应用程序。 我遇到的问题是,有时当用户按下某些键盘按钮时,Excel会窃取焦点并进入单元格编辑状态,这会导致我的应用程序崩溃。 防止键盘消息到达Excel的最佳方法是什么? 我试过CBT钩子和GetMessage钩子失败。还有其他方法吗?防止键盘消息到达应用程序
0
A
回答
0
Excel 2010的应用程序对象具有Interactive
属性。将其设置为false,Excel将阻止除显示的任何对话框之外的所有键盘和鼠标输入。
Application.Interactive = False
我不知道当加入Interactive
但我不认为它在Excel 2000中
0
最简单的方法可能是使用BlockInput(),它可以阻止整个桌面上的鼠标和键盘输入:如果您想在短时间内阻止用户,这非常有用。
或者,如果你只是想到达一个特定的EXE阻止输入,使用SetWindowsHookEx(WH_KEYBOARD_LL, ...) - 每MSDN,你可以返回-1从HOOKPROC造成被忽略的输入:
如果NCODE较大大于或等于零,[...]如果钩子程序处理了消息,它可能会返回一个非零值,以防止系统将消息传递给钩子链或目标窗口过程的其余部分。
WH_KEYBOARD_LL挂钩的一个很好的功能是它们不需要单独的DLL,你可以在自己的EXE中做所有事情。但只能使用它对抗Excel应用程序的threadID;如果你有应用程序的HWND,使用GetWindowThreadID()来获取。
相关问题
- 1. 如何防止Android显示应用程序停止消息
- 2. 如何避免“应用程序Android键盘未响应”消息?
- 3. 防止RabbitMQ将消息写入磁盘
- 4. 防止应用程序接收按键
- 5. bada编程 - 用键盘弹出消息
- 6. Flex 3:防止键盘事件到达Sprite
- 7. 防止键盘断线
- 8. hslider防止键盘事件
- 9. 处理WM_CLOSE消息发送到C#托盘应用程序
- 10. 的Flex防止软键盘从收盘
- 11. Android:如何防止打开物理键盘重新启动应用程序
- 12. 防止错误消息?
- 13. Python消息到其他应用程序
- 14. 防止.net程序写入磁盘
- 15. 以滑动手势关闭键盘(如在消息应用程序中)
- 16. 如何防止iOS消息应用程序剪切粘贴的图像?
- 17. 间谍键盘(如何通过C#win窗体应用程序获取键盘消息)
- 18. iPhone应用程序禁用UITextField键盘
- 19. 停止在科尔多瓦应用程序弹出键盘
- 20. Android键盘阻止应用程序组件
- 21. 为什么Messenger应用程序在应用程序停止时接收消息?
- 22. iPhone防止键盘转向风景
- 23. 防止键盘覆盖文本框
- 24. 防止控件窃取键盘焦点
- 25. 如何防止键盘被隐藏?
- 26. 防止软键盘被解雇
- 27. 如何防止软件键盘弹出?
- 28. 防止关闭Java swing应用程序
- 29. 防止强制杀死应用程序
- 30. 防止卸载的应用程序
这是个好主意!从未考虑过使用Google进行搜索。它被添加到Excel 2007 – SparcU 2012-02-11 13:45:22
@SparcU中,您可能还想使用Application.Cursor = xlWait来将鼠标指针更改为沙漏。完成后请不要忘记将其重新设置为“xlDefault”。 – mischab1 2012-02-12 16:58:08