Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нажатие клавиши


Страницы:   1 2

Сергей К. ©   (2011-03-13 02:05:00) 

Здравствуйте! Этот код осуществляет нажатие клавиши:
keybd_event(Ord('T'), MapVirtualKey(Ord('T'), 0), 0, 0);
keybd_event(Ord('T'), MapVirtualKey(Ord('T'), 0), KEYEVENTF_KEYUP, 0);

В данном случае нажимается кнопка "т", но суть в том, что в переменой s (тип string) у меня бывают разные символны. Ну если быть точным то может быть любая буква русского алфавита. Вопрос как имея в переменной букву алфавита, программно симмулировать ее нажатие.
Заранее спасибо.


KilkennyCat   (2011-03-13 03:10:00) [21]

еще раз: string не предназначена для хранения одного символа.
один символ можно хранить в char, AnsiChar, WideChar, byte, word.
но если хочется все через жопу делать, то хотя бы не поленись прочитать справку про string, наверняка там есть написание, что это упрощенно говоря, массив символов (в случае фиксированного размера, либо указатель, в противном случае), доступ к ОДНОМУ символу нужно делать как к элементу массива.


Сергей К.   (2011-03-13 02:41:00) [22]

Вот что я имею ввиду. ТАкой код:

if s='й' then begin
keybd_event(Ord('Q'), MapVirtualKey(Ord('Q'), 0), 0, 0);
keybd_event(Ord('Q'), MapVirtualKey(Ord('Q'), 0), KEYEVENTF_KEYUP, 0);
end;

if s='ц' then begin
keybd_event(Ord('W'), MapVirtualKey(Ord('W'), 0), 0, 0);
keybd_event(Ord('W'), MapVirtualKey(Ord('W'), 0), KEYEVENTF_KEYUP, 0);
end;

и так по всем буквам.

Такой код выполнить задачу, но это же явная жесть. Наверняка есть способ упростить код?


Сергей К.   (2011-03-13 02:38:00) [23]

объясните плиз, я не понимаю.
вот у меня в переменой s некий символ. к примеру "ы". Долго рассказывать почему, да и это не суть. Короче в стринг всегда один символ и всегда русский. Мне нужно симмулировать нажатие именно этой клавиши. Т.е к примеру если символ Ы, то соответственно должен сработать код, который симмулирует нажатие этой клавиши. . как это сделать?


KilkennyCat   (2011-03-13 02:33:00) [24]


> всегда один символ русского алфавита

в переменной стринг не хранят (обычно).


> Хех, не работает )

ну еще бы. типы переменных, что собой представляют, ферштейн?
стринг - это далеко не байт-код клавиатуры


Сергей К.   (2011-03-13 02:20:00) [25]

Я несколько уточню свой вопрос. Как имея в переменной string некое значение (а это всегда один символ русского алфавита) программно нажать точно такую же клавишу?


Сергей К.   (2011-03-13 02:11:00) [26]


> вместо 'T' написать эту переменную

Хех, не работает )


KilkennyCat   (2011-03-13 02:09:00) [27]

вместо 'T' написать эту переменную


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо