C# 退格模拟器删除整个单词而不是仅删除一个字母

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

我正在编写一个简单的 C# 程序,当我按 Ctrl+G 时,我希望我的程序自动删除任何程序中光标左侧的字符(例如:chrome 浏览器、word 文档、powerpoint 文档等) ...).

我已经为 Ctrl+G 安装了全局钩子,它工作正常。
我正在使用在Code Project上找到的键盘模拟器。

我的问题是,当我模拟退格键时:

KeyboardSimulator.KeyPress(Keys.Back);

整个单词都会被删除,而不仅仅是光标左侧的字符。

例如,如果我在包含以下文本行的 Microsoft Word 文档中:

“新年快乐”

我的光标位于“year”的末尾,然后当我按 Ctrl+G 时,我的程序会删除“year”并将光标放在“new”的右侧 - 而不是仅仅删除该字母“年”中的“r”。

我也尝试过其他模拟器,结果相同。

有人有解决方案或知道我做错了什么吗?

c# keyboard-shortcuts keyboard-events keyboard-hook
1个回答
8
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.