我正在编写一个简单的 C# 程序,当我按 Ctrl+G 时,我希望我的程序自动删除任何程序中光标左侧的字符(例如:chrome 浏览器、word 文档、powerpoint 文档等) ...).
我已经为 Ctrl+G 安装了全局钩子,它工作正常。
我正在使用在Code Project上找到的键盘模拟器。
我的问题是,当我模拟退格键时:
KeyboardSimulator.KeyPress(Keys.Back);
整个单词都会被删除,而不仅仅是光标左侧的字符。
例如,如果我在包含以下文本行的 Microsoft Word 文档中:
“新年快乐”
我的光标位于“year”的末尾,然后当我按 Ctrl+G 时,我的程序会删除“year”并将光标放在“new”的右侧 - 而不是仅仅删除该字母“年”中的“r”。
我也尝试过其他模拟器,结果相同。
有人有解决方案或知道我做错了什么吗?
显然,在Windows中Ctrl+Backspace通常意味着删除整个单词。当您按 Ctrl+g,并且您的钩子模拟退格键时,程序会看到 Ctrl+Backspace,因为 Ctrl 已按下。