2008-11-27 51 views
2

我想將字符串轉換爲一系列的鍵碼,以便我可以通過PostMessage將它們發送給控件。我需要模擬實際的鍵盤輸入,並且我想知道是否一個大規模的switch語句是將字符轉換爲正確的鍵碼的唯一方法,或者是否有更簡單的方法。如何在.Net中將Char轉換爲Keycode?

====

得到了我的解決方案 - http://msdn.microsoft.com/en-us/library/ms646329(VS.85).aspx

VkKeyScan將返回正確的鍵碼的任意字符。 (是的,我不會這樣做,但是在做自動測試時,確保鍵盤按鍵正確響應,足夠可靠地工作)。

回答

0

爲z 1-9,你可以嘗試建立焦炭引入鍵碼字符串string.Format("KEY_KEY_{0}", char.ToString())然後使用Enum.Parse提取枚舉值,但它是一個有點cludge的

還是看How to convert uint keycode to Keys enum關於專家性交易,只是在棘手的情況下工作。

我同意一個switch語句是有點可怕的

0

一個更可靠的等待擊鍵的字符串發送到窗口是使用SendKeys類

System.Windows.Forms.SendKeys("This is a test"); 
System.Windows.Forms.SendKeys("This is sends CTRL+J ^j"); 

這將是更具可預測性,並應爲您節省一些時間。

+0

不幸的是,它只適用於你的窗口肯定會有重點。哪一個我不會。 – 2008-12-01 10:29:57