|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.02.2009, 19:15 | #1 |
Регистрация: 10.02.2009
Сообщений: 5
|
Эмуляция набора фразы на клавиатуре в независимом окне
Доброго времени суток, гостопода-коллеги.
Не смейтесь, но вот короткая пред-история. Шеф "обозначил" меня главным по инвентаризации. По требованию компании требуется создать приличное количество документации, всякие бумаги по приёмке оборудования (при покупке), передачи его ответственному лицу в какой-либо отдел, также бумажки при передаче в ремонт и возврат и т.д. Ранее всё вели в Excel, всё бумажки делали ручками методом "копипаста". Я решил пойти другим путём, дабы упростить работу. Сделал на фре сервер, поднял apache+php+mysql. Подходящего многоуровнего портала с авторизацией не нашёл, поэтому написал его сам, включая админку и т.д. С помощью Dojo, мозгов (PHP+JavaScript+Perl) и какой-то матери создал все необходимые формы, поля, обработчики и т.д. По-требованию компании в базе обязательно должен быть (если есть) серийный номер. Достаточно нудное занятие вбивать его вручную (побежал, записал на бумажку, прибежал, вбил), поэтому я купил bar-code сканнер с памятью - Motorola Symbol CS1504. Штучка конечно супер, но моё самое огромное разочарование - с ним НЕТ никакого софта. Этого я не знал. Посему вытащить отсканированный серийник нет никакой возможности. Стал ковыряться, выкачал SDK, в котором (о счастье!) есть пример для Visual Basic. Причём работающий. Но вот есть проблемка - серийник выводится только в окне запущенной программы. Внимание, вопрос. Господа, своим "упрощением" жизни я уже порядком себя измотал и посему большая просьба к тому, кто понимает и может помочь. Программа-считыватель-кода-из-устройства работает спрятанной в трее, но как я уже сказал, серийник она автоматически показывает в своём окошке, а мне надо, что бы он "как-буд-то" набирался на клавиатуре. Укажите пример (а ещё лучше готовую функцию), который бы "конвертировал" серийный номер из "слова" в "нажатия на клавиатуре". За ранее всем спасибо. P.S. Извините за много текста. |
10.02.2009, 19:18 | #2 |
Регистрация: 10.02.2009
Сообщений: 5
|
P.S.2
"Как буд-то набирался на клавиатуре" - это для того, что бы код я мог вставить в ЛЮБОЕ активное поле ЛЮБОГО открытого документа. Например, в поле ввода на веб-странице, или в эксель и т.п. Я думаю это не важно КУДА, если эмулироваться будет именно набор на клавиатуре. Спасибо. |
10.02.2009, 20:34 | #3 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
насколько я понял вывод серийника происхордит в каком-то окне и оно сразу становится активным, и узнать какое окно было до этого активным уже проблематично.
в общем, случае: ставишь хук и отлавливаешь сообщение в установки текста в окне, которое выводит серийник, после того как текст в целевом окне установился посылаем сообщение в нужное окно. |
10.02.2009, 20:46 | #4 | |
Регистрация: 10.02.2009
Сообщений: 5
|
Цитата:
Вероятно я не совсем корректно объяснил что я бы хотел видеть. Бывает Так вот, в чём сама суть идеи. Есть программа, которая по таймеру каждую секунду соединяется с устройством, проверяет его состояние и в textbox-е выводит информацию (в данном случае серийный номер). Мне НЕ нужен серийный номер в "теле" самой программы. Я хочу, что бы серийный номер при получении выводился как бы нажатие клавишь на клавиатуре. Объясню для чего. Я бы хотел, что бы программа работала как обычная.. мм.. клавиатура. Т.е. я сканирую штрих-код, программа висит в трее и сама (по таймеру) опрашивает устройство. Как только в памяти девайся появляется код (номер это номер, а серийный номер лучше кодом назвать, ибо там кроме цифр могут быть дефисы и буквы), она его не ТОЛЬКО выводит в своём окне как сейчас, но и эмулировала бы ввод данного кода с клавиатуры. Т.е. я просто (пусть в Excel) "становлюсь" на нужную ячейку, сканирую устройством штрих-код и программа должна сэмулировать его ввод с клавиатуры. Извините за каламбур, надеюсь смог объяснить что к чему |
|
10.02.2009, 21:07 | #5 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
ну тогда, ставишь хук и отлавливаешь сообщение в установки текста в окне, которое выводит серийник, после того как текст в целевом окне установился эмулируем нажатие клавиш.
если нужны функции: по хукам "хуки в Windows" в гугль, эмуляция нажатия клавиш функция keybd_event |
10.02.2009, 23:24 | #6 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
http://programmersforum.ru/showthread.php?t=38418
В моей теме есть кусочек нужного Вам кода , если имеете опыт то "Как буд-то набирался на клавиатуре" Иимеет некоторые элементы в роде Код:
Lime |
11.02.2009, 11:32 | #7 |
Регистрация: 10.02.2009
Сообщений: 5
|
И понял и нет одновременно.
Я правильно понимаю, что "эмулируя" нажатия клавиш клавиатуры совершенно всё равно где будет находиться курсор в данный момент? Я имею ввиду не важно в какой программе, главное что бы было поле ввода? И второе. Простите за наглость, VB не моя стихия. Можете дать (показать) функцию, которая принимает строку и "эмулирует" набор этой строки на клаве? |
11.02.2009, 11:33 | #8 |
Регистрация: 10.02.2009
Сообщений: 5
|
ЗЫ. В принципе мне главное что бы появилась строка в "независимом" окне. Можно и через буфер обмена
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
звук на клавиатуре | Михаил Юрьевич | Общие вопросы Delphi | 27 | 02.03.2008 17:34 |
Помогите (фразы анаграммы) | Leopold666 | Помощь студентам | 5 | 09.08.2007 18:22 |
Всё о клавиатуре | Freek | Win Api | 5 | 25.06.2007 08:48 |