1

我正在编写一个简单的 C# 程序,当我按下“ctrl+g”时,我希望我的程序自动删除任何程序中光标左侧的字符(例如:chrome 浏览器、word 文档、powerpoint 文档等... )。我已经为“ctrl+g”安装了一个全局钩子,它工作正常。我正在使用从 codeproject 中找到的键盘模拟器:http: //www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library 我的问题是,当我像这样模拟退格时:

KeyboardSimulator.KeyPress(Keys.Back);

整个单词被删除,而不仅仅是光标左侧的字符。例如,如果我在一个带有以下文本行的 Microsoft Word 文档中:“Happy new year”,如果我的光标位于“year”的末尾并且按 ctrl+g,我的程序会删除“year”并将光标就在“new”的右边,而不是只删除“year”的字母“r”。我也尝试过其他模拟器,结果相同。有没有人有解决方案或知道我做错了什么?谢谢。

4

1 回答 1

7

显然,Ctrl+Backspace 通常意味着在 Windows 中删除整个单词。当您按下 Ctrl+g 并且您的钩子模拟退格键时,程序会看到 Ctrl+Backspace,因为 Ctrl 已按下。

于 2012-12-17T01:55:50.480 回答