Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.20;
Скачать: CL | DM;

Вниз

PostMessage(Edit.Handle,WM_KEYDOWN,code,0);   Найти похожие ветки 

 
Zilog ©   (2006-08-03 11:05) [0]

как мне сэмулировать нажатие клавиш клавиатуры?
 пробудю сделать так:

 Key = "й";
 ...
 code := ord(Key);
 но так не работает
 PostMessage(Edit.Handle,WM_KEYDOWN,code,0);

подскажите где ошибся


 
Сергей М. ©   (2006-08-03 11:08) [1]

см. keybd_event()


 
Шпиён   (2006-08-03 11:10) [2]

или SendInput()


 
Ketmar ©   (2006-08-03 11:13) [3]

читать в район VkKeyScan(), не забывать, что WM_KEYDOWN передаюёт константы VK_xxx, а вовсе не коды символов. кстати, не забывать делать WM_KEYUP.


 
Zilog ©   (2006-08-03 12:15) [4]

а как заставить работать  VkKeyScan() с русскими букавми?


 
Zilog ©   (2006-08-03 12:17) [5]

>>Сергей М. ©   (03.08.06 11:08) [1]

keybd_event() мне не подходит, т.к. надо устанавливать фокус.


 
Сергей М. ©   (2006-08-03 12:23) [6]

А зачем тогда потребовалась эмуляция именно клавиатурного ввода ?
Что, Edit.Text = Edit.Text + "й" совсем не канает ?)


 
Zilog ©   (2006-08-03 12:27) [7]

не, не канает.
На форме кнопки-алфавит, тыкая по которым забивается текстовое поле.
Дело в курсорных клавишах - дожны быть возможность исправить букву в слове.

так что вопрос Zilog ©   (03.08.06 12:15) [4]
остается в силе


 
Ketmar ©   (2006-08-03 12:44) [8]

> [4] Zilog ©   (03.08.06 12:15)

внимательно покурить справку.


 
Сергей М. ©   (2006-08-03 12:53) [9]


> Zilog ©   (03.08.06 12:27) [7]


Ну и ?
Тебе надо программно переместить курсор (позицию ввода) в поле ввода, так ?


 
Zilog ©   (2006-08-03 13:48) [10]

>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.


 
Zilog ©   (2006-08-03 13:51) [11]

Вопрос решен - что бы VkKeyScan работал с русскими символами - необходимо, что бы была включена русская раскладка клавиатуры (RU).


 
Zilog ©   (2006-08-03 14:17) [12]

Появился еще один вопрос - а как виртуально зажать клавишу Shift?

Вот этот способ не работает:

 PostMessage(Edit.Handle,WM_KEYDOWN,VK_SHIFT,0);
 PostMessage(Edit.Handle,WM_KEYDOWN,code,0);


 
Zilog ©   (2006-08-03 14:51) [13]

неужели нет ниу кого вариантов?


 
Пусик ©   (2006-08-03 15:01) [14]

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;



Страницы: 1 вся ветка

Текущий архив: 2006.08.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
6-1144122492
V-A-V
2006-04-04 07:48
2006.08.20
Проверка соеденения через ADSL модем


2-1154092119
Ezorcist
2006-07-28 17:08
2006.08.20
про динамические массивы


1-1151994943
PRT
2006-07-04 10:35
2006.08.20
Открыть с помощью...


2-1154449222
Lexx_lamer
2006-08-01 20:20
2006.08.20
Написание компонентов Delphi


15-1153841744
0bsid
2006-07-25 19:35
2006.08.20
Ctrl+Shift+Space :(