C#Sendkeys發送中文漢字解決方法


C#的Sendkeys方法,可以實現將一個或多個按鍵消息發送到活動窗口,就如同在鍵盤上進行輸入一樣。但是在使用過程中發現,輸入漢字的時候經常出現發漏或者發不了的情況。后來經過研究,發現可以通過更加底層的方法,通過引用user32.dll,實現更加底層的模擬鍵盤輸入。

有了這個想法,為了實現漢子的輸入,思路是:

1、封裝KeyBoard類,通過引用User32.dll實現單個字母的輸入;

2、為解決輸入漢字的問題,通過迂回的方法,把漢字復制到系統的剪貼板,然后模擬鍵盤輸入Crtl+V的方式,把剪貼板中的中文漢字復制到要輸入的地方。

 

關鍵代碼如下:

//按下crtl+v,起到黏貼的作用
public static void Paste(string contents)
{
Tools.SetClipBoard(contents);
KeyBoard.keybd_event(17, 0, 0, 0);
KeyBoard.keybd_event(86, 0, 0, 0);
KeyBoard.keybd_event(17, 0, 2, 0);
KeyBoard.keybd_event(86, 0, 2, 0);
}

 

PS:第一次用博客園,不知道怎么樣把代碼上傳,先這樣試試。如果有具體需要拿全部實現代碼,可以留言給我。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM