On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение





Пост N: 125
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 16.08.13 19:43. Заголовок: SOLVED!!! -> TRAPANYKEY() и KEYSEND() или запись/воспроизведение клавиатурных макросов


Практически со всем разобрался и восстановил функционал.

Осталось одно и достаточно важное дело: автоматизация рутинных операций. В Clipper это происходило при помощи функций TRAPANYKEY/KEYSEND

Первая при нажатии на любую клавишу в любом месте программы (включая GET/DBEDIT/ACHOICE/INKEY и тп) вызывает указанную мною функцию и передает ей код нажатой кнопки.
Пользовательская функция тихо сидит и собирает эти коды в буфер - "записывает" нажатия клавиш юзером.

В случае, если нужно "воспроизвести" записанные нажатия на кнопки, вызывается KEYSEND() с этим буфером в качестве параметра.

Просто и логично.

---------------------------------

Встал вопрос - чем и как заменить этот функционал? Без него меня разорвут на части - делать множество рутинных операций без клавиатурных макросов чокнешься...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 45 , стр: 1 2 3 All [только новые]





Пост N: 3
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 25.09.13 13:32. Заголовок: Да в том-то и пробле..


Да в том-то и проблема, что возвращается и зацикливается. Нужно после подстановки клавиш (там еще не просто замена клавиш, а "вставка" еще одного нажатия) временно обработчик отключать, отдать управление в вышестоящую процедуру, а потом вернуть на место.

(я чужой проект переношу, а там разработчик понимал толк в извращениях, хехе)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 308
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 25.09.13 14:35. Заголовок: Если нужна помощь - ..


Если нужна помощь - есть смысл привести пример кода. У меня тоже, как оказалось, был "толк в извращениях", которые 10 лет назад написал на Clipper и забыл. А сейчас с переходом на Harbour пришлось вспоминать... хехе)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 25.09.13 14:57. Заголовок: Все, кажись, выкрути..


Все, кажись, выкрутился ))

В hb_KeyPut загонял нужные клавиши массивом, как выше и рекомендовалось, а перед его вызовом сделал hb_gtInfo(HB_GTI_INKEYFILTER, nil)



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4716
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.04.15 15:31. Заголовок: Хорошая штука hb_gtI..


Хорошая штука hb_gtInfo(HB_GTI_INKEYFILTER.... тоже переделал у себя вызовы NextKey(),
там где проверяю активность юзера.
Надеюсь на работу клавиатурного сканера это
не скажется (постоянно работающий hb_gtInfo(HB_GTI_INKEYFILTER.....)


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5331
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.11.15 11:16. Заголовок: Иногда юзера стали ж..


Иногда юзера стали жаловаться что прога подвисает (ранее таких жалоб вроде не было)
В программе живет вот такой код
hb_gtInfo(HB_GTI_INKEYFILTER, {|nk| aadd(aDownKeys,nk)})

В отдельном потоке этот массив обнуляется (aDownKeys) при достижении его длины больше двух.
Не может это обнуление вызвать зависон ?
Гонял у себя прогу , на такой эффект попасть не смог.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 45 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 555
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет