OberonCore
https://forum.oberoncore.ru/

Кода клавиш в ВВ...
https://forum.oberoncore.ru/viewtopic.php?f=1&t=276
Страница 1 из 1

Автор:  Вячеслав Бойко [ Понедельник, 24 Июль, 2006 14:29 ]
Заголовок сообщения:  Кода клавиш в ВВ...

Вот, возникла надобность симулировать нажатие клавишь Ctrl+A и Ctrl+C в программе.
В Делфе это пишеться так:
Код:
 keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
 keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);
 keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);
 keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)

Что мне писать вместо VK_CONTROL, KEYEVENTF_KEYUP и KEYEVENTF_KEYUP в ВВ?

Смотрел модули MtChars, National и справку ВВ , но так и не понял :(

Автор:  Сергей Губанов [ Понедельник, 24 Июль, 2006 16:05 ]
Заголовок сообщения:  Re: Кода клавиш в ВВ...

Они определены в модуле WinApi:

VK_CONTROL = 17;
KEYEVENTF_KEYUP = {1};

PROCEDURE keybd_event (bVk, bScan: SHORTCHAR; dwFlags: SET; dwExtraInfo: INTEGER);

Автор:  Вячеслав Бойко [ Понедельник, 24 Июль, 2006 16:20 ]
Заголовок сообщения:  Re: Кода клавиш в ВВ...

Сергей Губанов писал(а):
Они определены в модуле WinApi


Да, определены... Но на такую запись
Код:
WinApi.keybd_event(WinApi.VK_CONTROL, WinApi.MapVirtualKey(WinApi.VK_CONTROL, 0), 0, 0);
WinApi.keybd_event(ORD('C'), WinApi.MapVirtualKey(ORD('C'), 0), 0, 0);
WinApi.keybd_event(ORD('C'), WinApi.MapVirtualKey(ORD('C'), 0), WinApi.KEYEVENTF_KEYUP, 0);          
WinApi.keybd_event(WinApi.VK_CONTROL, WinApi.MapVirtualKey(WinApi.VK_CONTROL, 0), WinApi.KEYEVENTF_KEYUP, 0)

у меня сплошные "incompatible assignment" :( Что я не так делаю?

Автор:  Сергей Губанов [ Понедельник, 24 Июль, 2006 17:01 ]
Заголовок сообщения:  Re: Кода клавиш в ВВ...

Надо так:

WinApi.keybd_event(SHORT(CHR(WinApi.VK_CONTROL)), SHORT(CHR(WinApi.MapVirtualKey(WinApi.VK_CONTROL, 0))), {}, 0);
WinApi.keybd_event('C', SHORT(CHR(WinApi.MapVirtualKey(ORD('C'), 0))), {}, 0);
WinApi.keybd_event('C', SHORT(CHR(WinApi.MapVirtualKey(ORD('C'), 0))), WinApi.KEYEVENTF_KEYUP, 0);
WinApi.keybd_event(SHORT(CHR(WinApi.VK_CONTROL)), SHORT(CHR(WinApi.MapVirtualKey(WinApi.VK_CONTROL, 0))), WinApi.KEYEVENTF_KEYUP, 0)

Автор:  Вячеслав Бойко [ Понедельник, 24 Июль, 2006 17:13 ]
Заголовок сообщения: 

Спасибо! Работает.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/