(Я пытаюсь сделать код SendKeys из Интернета с расширенными символами.) Sendkeys - это имитация VB SendKeys. Есть несколько алгоритмов, которые я видел в Интернете, плюс тот, который пришел с Delphi 7. Моя программа использует его для отправки нажатий клавиш другим программам, чтобы сделать запись данных более быстрой и последовательной. Он работает хорошо, за исключением символов, которые Ord() сообщает с номером более 255.Получение кодов клавиш для Alt + Цифровая клавиатура для использования в SendKeys
После публикации этого вопроса я обнаружил, что карта символов сообщает Alt + 0128 через Alt + 255. И получается, что только 26 таких символов сообщаются Ord() с тем, что, как представляется, является значением unicode. Таким образом, у меня теперь есть уродливая работа, которая просто заменяет значения, сообщенные Ord(), с альтернативными, более низкими значениями, указанными в Символьной карте. Поэтому мои Sendkeys теперь совместимы с кодировкой Ansi в «Блокноте».
Я надеялся на простое преобразование символов, например AnsiChar(), но это дало совершенно неправильные значения Ord().
Я использую шрифты Delphi XE2 и Arial для всего этого вопроса. Утилита «Карта символов Windows» сообщает, что Alt + 0147 создает «Левую двойную метку котировки».
Эта комбинация клавиш обеспечивает «символ в элементе управления Delphi,« Блокнот »и« Слово ».
Все мои интернет-исследований говорит использовать Ord(), чтобы определить числовое значение символа:
Procedure ShowNumericKeypadCode(ch: Char);
begin
showmessage('Key code = ' + Format('%4.4d',[Ord(ch)]));
end;
Но это возвращает 8220, а не 0178. Alt + 8220 урожайности ∟ в Notepad и Delphi управления, но он все еще производит «в Слове».
Это, очевидно, что-то делать с Анси против Unicode, но я не могу понять, как написать функцию в Delphi, который будет возвращать 0178 вместо 8220.
Iconv не будет полезным, поскольку цель должен иметь самостоятельную программу. Благодарю.
Мы не знаем, что 'SendKeys' есть. Однако подделка более сложного ввода с клавиатуры сложна. Часто зависит от раскладки клавиатуры. Возможно, если вы решите проблему без взломанного ввода, вы получите больше радости. –