2012-12-17 54 views
1

我正在寫一個簡單的C#程序,當我按下「ctrl + g」時,我希望我的程序自動刪除任何程序中光標左側的字符(例如:chrome瀏覽器,word文檔,powerpoint文檔等)。 ..)。 我已經安裝了「ctrl + g」的全局鉤子,它工作正常。我使用的是鍵盤模擬器,我從CodeProject發現:http://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library 我的問題是,當我模擬退格,像這樣:c#退格模擬器 - 刪除整個單詞而不是隻是一個字母?

KeyboardSimulator.KeyPress(Keys.Back); 

整個單詞被刪除,而不是僅僅的字符光標的左側。例如,如果我使用以下文本行在Microsoft Word文檔中: 「新年快樂」 如果我的光標位於「年份」的末尾,並且按下ctrl + g,我的程序將刪除「年」並且將光標放在「新」的右側,而不是隻刪除「年」的字母「r」。 我已經嘗試過其他模擬器以及相同的結果。有沒有人有解決方案或知道我在做什麼不正確? 謝謝。

+0

你可能需要在任何人都可以幫忙之前顯示你的代碼 –

+3

當SendKeys執行你所需要的操作時,爲什麼還要用「KeyboardSimulator」?安裝鉤子並在鉤子被擊中時使用sendkeys。 'SendKeys.Send(「{BACKSPACE}」);' –

回答

7

顯然,Ctrl + Backspace通常意味着刪除Windows中的整個單詞。當你按下Ctrl + g,並且你的鉤子模擬退格鍵時,程序會看到Ctrl + Backspace,因爲Ctrl是關閉的。

+0

謝謝。我改變了+ g +的捷徑,它工作。此外,一個工作,以保持ctrl + g作爲快捷方式是添加: KeyboardSimulator.KeyUp(Keys.Control); – user1521111

相關問題