Главная страница
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.053 c
15-1153500115
Rgv54
2006-07-21 20:41
2006.08.20
Проблема с WordXP


15-1153583478
Nic
2006-07-22 19:51
2006.08.20
Мой первый проект под заказ


15-1153430430
ronyn
2006-07-21 01:20
2006.08.20
dreamweaver


2-1154502870
Ironman83
2006-08-02 11:14
2006.08.20
Цвет ячеек в сетке.


3-1150289387
Still Swamp
2006-06-14 16:49
2006.08.20
Out of memory в TIBQuery и FB