![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PostMessage(Edit.Handle,WM_KEYDOWN,code,0); [D7, XP]
Zilog © (2006-08-03 11:05:00)как мне сэмулировать нажатие клавиш клавиатуры?
пробудю сделать так:
Key = 'й';
...
code := ord(Key);
но так не работает
PostMessage(Edit.Handle,WM_KEYDOWN,code,0);
подскажите где ошибся
Пусик (2006-08-03 15:01:00) [1]procedure WrShiftX;
begin
Keybd_Event(VK_SHIFT,0,0,0);
Keybd_Event(Ord('X'),0,0,0);
Keybd_Event(VK_Menu,0,KEYEVENTF_KEYUP,0);
end;
Zilog (2006-08-03 14:51:00) [2]неужели нет ниу кого вариантов?
Zilog (2006-08-03 14:17:00) [3]Появился еще один вопрос - а как виртуально зажать клавишу Shift?
Вот этот способ не работает:
PostMessage(Edit.Handle,WM_KEYDOWN,VK_SHIFT,0);
PostMessage(Edit.Handle,WM_KEYDOWN,code,0);
Zilog (2006-08-03 13:51:00) [4]Вопрос решен - что бы VkKeyScan работал с русскими символами - необходимо, что бы была включена русская раскладка клавиатуры (RU).
Zilog (2006-08-03 13:48:00) [5]>Ketmar © (03.08.06 12:44) [8]
Здесь ничего не сказано пор русские буквы, кодировку и т.п.
Описание:
function VkKeyScan(AChar: Word): Word;
Пеpеводит AChar в код соответствующей ему виpтуальной клавиши и состояние сдвига.
Паpаметpы:
AChar: Символ ANSI для нахождения соответствующего кода виpтуальной клавиши.
Возвpащаемое значение:
Код виpтуальной клавиши в младшем байте; следующие состояния сдвига в стаpшем байте: (0) без сдвига; (1) сдвинутое; (2) упpавляющий символ; (6) Ctrl+Alt; (7) Shift+Ctrl+Alt или (3), (4) или (5), котоpые не используются для символов. В случае ошибки оба байта содеpжат -1.
Сергей М. (2006-08-03 12:53:00) [6]
> Zilog © (03.08.06 12:27) [7]
Ну и ?
Тебе надо программно переместить курсор (позицию ввода) в поле ввода, так ?
Ketmar (2006-08-03 12:44:00) [7]> [4] Zilog © (03.08.06 12:15)
внимательно покурить справку.
Zilog (2006-08-03 12:27:00) [8]не, не канает.
На форме кнопки-алфавит, тыкая по которым забивается текстовое поле.
Дело в курсорных клавишах - дожны быть возможность исправить букву в слове.
так что вопрос Zilog © (03.08.06 12:15) [4]
остается в силе
Сергей М. (2006-08-03 12:23:00) [9]А зачем тогда потребовалась эмуляция именно клавиатурноговвода ?
Что, Edit.Text = Edit.Text + 'й' совсем не канает ?)
Zilog (2006-08-03 12:17:00) [10]>>Сергей М. © (03.08.06 11:08) [1]
keybd_event() мне не подходит, т.к. надо устанавливать фокус.
Zilog (2006-08-03 12:15:00) [11]а как заставить работать VkKeyScan() с русскими букавми?
Ketmar (2006-08-03 11:13:00) [12]читать в район VkKeyScan(), не забывать, что WM_KEYDOWN передаюёт константы VK_xxx, а вовсе не коды символов. кстати, не забывать делать WM_KEYUP.
Шпиён (2006-08-03 11:10:00) [13]или SendInput()
Сергей М. (2006-08-03 11:08:00) [14]см. keybd_event()