Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 16:00   #1
Whereami
 
Регистрация: 19.03.2012
Сообщений: 3
По умолчанию Программное нажатие клавиш в FoxPro приложении

День добрый всем! На работе пишу виртуальную клавиатуру для FoxPro-приложения (считай Дос).Тестил работу на блокноте и на command строке, клавиши срабатывают, цифры вводятся. А вот то, что нужно - при активном ДОС-окне программно нажать клавишу- никак не выходит. Не реагирует и все.
Да, вот еще, предвидя возможные вопросы говорю - в самом окне нет дополнительных полей, как только делаешь его активным, с реальной клавиатуры сразу можно печатать, так что дополнительные хэндлы здесь без надобности.
Вот пример, если кто что сможет подсказать, будет здорово
Вложения
Тип файла: doc Пример работы с вирт.клавиатурой.doc (12.1 Кб, 11 просмотров)

Последний раз редактировалось Whereami; 19.03.2012 в 16:17.
Whereami вне форума Ответить с цитированием
Старый 19.03.2012, 23:51   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Чего-то doc какой-то косячный. Можно подглядеть здесь, недавно наткнулся, но не проверял
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.03.2012, 08:24   #3
Whereami
 
Регистрация: 19.03.2012
Сообщений: 3
По умолчанию

Аватар, благодарю. Буду пробовать.
Whereami вне форума Ответить с цитированием
Старый 21.03.2012, 14:20   #4
Whereami
 
Регистрация: 19.03.2012
Сообщений: 3
По умолчанию

Спасибо большое, помогло. Вставил
const

ExtendedKeys: set of Byte = [ // incomplete list
VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT,
VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN, VK_NUMLOCK
];

и

procedure SimulateKeystroke(Key: byte);
var

flags: DWORD;
scancode: BYTE;
begin

if Key in ExtendedKeys then
flags := KEYEVENTF_EXTENDEDKEY
else
flags := 0;
scancode := MapVirtualKey(Key, 0);
keybd_event(Key,
scancode,
flags,
0);
keybd_event(Key,
scancode,
KEYEVENTF_KEYUP or flags,
0);
end;

...и все заработало. Буду разбираться, как это сделано.
Whereami вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программное нажатие 3-х клавиш artemavd Общие вопросы Delphi 12 19.09.2011 14:24
Программное нажатие кнопки в TWebBrowser RIO Работа с сетью в Delphi 3 16.07.2011 22:27
Программное нажатие клавиши в чужом приложении Der_G()RuNu(h Работа с сетью в Delphi 33 10.07.2011 18:57
Программное нажатие клавиш Damien4Damien Общие вопросы Delphi 2 17.10.2010 16:26
сделать нажатие клавиш, в неактивном приложении Димарик Общие вопросы Delphi 1 22.06.2007 22:48