WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема В ДОСе надо "нажать" несколько клавиш К предыдущему сообщению На следующее сообщение Программирование

Отправил SandMan в 17:12 05.12.2002[Ответить]
Может, ещё не все старушку ДОС забыли?
Нужна помощь...

В общем, есть такая задача:
1. Имеется ДОСовская программа; в неё с клавиатуры вносятся данные с бумажного носителя.
2. Внутренний формат хранения внесённых данных известен, в лучшем случае, автору программы.
3. Данных на бумажном носителе много, но они легко могут быть вытащены в Excel или любой другой удобный формат.
4. Вколачивать вручную неудобно и долго (сроки жмут, как ботинки на 2 размера меньше)
5. Надо посылать ДОСовской программе коды нажимаемых клавиш, чтобы она считала, что это нажимают на клавиатуре.

Переварить свои данные в соответствующую последовательность клавиш я могу и сам, но вот как их программе переслать? Полагаю, надо поиграть с ДОСовой консолью, только стандартное перенаправление ввода не работает (это то, которое с помощью <<). Может, кто-то уже сталкивался с подобной задачей?
Да, чуть не забыл - программа фоксовая, если это вдруг важно...

Заранее благодарен всем откликнувшимся по теме!


Отправил Coнный в 17:18 05.12.2002[Ответить]
1. Рефокс и внести изменения в софтину, чтобы из ДБФ или ТХТ с разделителями загонялось в базу автоматом
2. Просто отдельной софтиной, которая зная структуру пишется за полчаса загонять в ДБФ данные из, повторюсь, ДБФ или ТХТ с разделителями.. кои формируются в том же Мокселе...

или эта фоксовая прога не в ДБФ хранит данные?.,:)


Отправил SandMan в 17:23 05.12.2002[Ответить]
Сонному:
1. рефокса нет
2. структура самого ДБФ-файла загадкой не является, вот только там ДБФ-табличек целая гора, схема данных далеко не прозрачна... Времени разбираться нет.


Отправил SandMan в 19:06 05.12.2002[Ответить]
Отвечаю сам себе: можно в виндах написать программульку, хоть в том же VBA, которая будет использовать функцию SendKeys активному окну - вроде всё должно получиться, можно даже функциональные клавиши передавать. Вечером попробую.


Отправил SandMan в 10:21 06.12.2002[Ответить]
И ещё раз сам себе отвечу - SendKeys не сработал... В хелпе прописано, что эта штука проходит для приложений, разработанных для Microsoft Windows, старенький FoxPro2.6 для этого не катит... Есть альтернатива - keybd_event, он сидит в виндовой библиотеке user32, у него четыре параметра, один из которых - скэн-код нажимаемой клавиши... Осталось найти таблицу скэн-кодов, и дело будет за малым.


Отправил Rupert в 11:17 06.12.2002[Ответить]
не в ту сторону паришься. ищи тех хелп по досу-биосу, ф-ям. красивая такая справочника, в текстовой моде. Ее кури.


Отправил SandMan в 11:30 06.12.2002[Ответить]
Радостно сообщаю, что с проблемой справился!

В эпоху виндовсов и т.п. влезать в досовские прерывания, буферы клавиатуры и т.п. как-то не хочется, да и некогда; кроме того, исходные данные в Экселе имеются - велосипед изобретать не хочется.

Нашёл WinAPI функцию keybd_event, она в самый раз проходит. И таблицу скэн-кодов нашёл (яндексу спасибо отдельное). Так что обсуждение можно закрыть.

Спасибо всем откликнувшимся!


Отправил Rupert в 12:32 06.12.2002[Ответить]
Может, ещё не все старушку ДОС забыли?
Нужна помощь...

В эпоху виндовсов и т.п. влезать в досовские прерывания, буферы клавиатуры и т.п. как-то не хочется, да и некогда; кроме того, исходные данные в Экселе имеются - велосипед изобретать не хочется.

как то ты сам себе противоречишь



Отправил SandMan в 12:37 06.12.2002[Ответить]
как то ты сам себе противоречишь

На первый взгляд - действительно, противоречу. Но так уж получилось, что в ходе поиска решения я отказался от чисто досовского программирования, хотя изначально чуть ли не с отчаяния хотел было даже в прерывания влезать, да вовремя одумался. Вот такой я загадочный... :))


Отправил Rupert в 09:30 09.12.2002[Ответить]
Зря. Красивая веща- прерывания. Не то что эти жестко зашитые ф-и, к которым к тому же х...н ДОСтучишься.


Отправил SandMan в 10:34 11.12.2002[Ответить]
Ну... красиво - не красиво - не тогда решать, когда сроки горят. А вот посылкой в ДОС-окно кодов клавиш всё благополучно разрешилось, геморрой снят