我正在使用通過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