(我試圖讓SendKeys代碼從互聯網上使用擴展字符工作。)Sendkeys是模仿VB SendKeys。我在互聯網上看到了幾種算法,以及Delphi 7自帶的算法。我的程序使用它來將擊鍵發送到其他程序,以使數據輸入更快更一致。除了Ord()用255以上的數字報告的字符以外,它的效果很好。獲取用於SendKeys的Alt +數字鍵盤的鍵控代碼
自發布此問題後,我發現字符映射報告Alt + 0128到Alt + 255。事實證明,只有26個這樣的字符由Ord()報告,看起來是一個unicode值。所以我現在有一個醜陋的工作,只是用Ord()報告的值替換字符映射報告的替代值,更低值。所以我的Sendkeys現在看起來與記事本中的Ansi編碼兼容。
我希望像AnsiChar()這樣簡單的字符轉換,但卻產生了完全錯誤的Ord()值。
我對所有這個問題都使用Delphi XE2和Arial字體。 Windows字符映射實用程序報告Alt + 0147創建「左雙引號」。
這個組合鍵提供了「Delphi控件,記事本和Word中的字符」。
我所有的互聯網的研究說,使用奧德()來確定一個字符的數值:
Procedure ShowNumericKeypadCode(ch: Char);
begin
showmessage('Key code = ' + Format('%4.4d',[Ord(ch)]));
end;
但這返回8220,而不是0178. Alt + 8220的產量∟在記事本和Delphi控制,但它仍然產生「在Word中。
這顯然是與安思對Unicode的,但我無法弄清楚如何寫在Delphi中的函數將返回0178,而不是8220
ICONV不會因爲目標有幫助是有一個獨立的計劃。謝謝。
我們不知道是什麼'SendKeys'是。然而,僞造更復雜的鍵盤輸入是棘手的。通常取決於鍵盤佈局。也許如果你能解決你的問題而不冒昧的輸入僞裝,你會有更多的快樂。 –