| Форум РадиоКот https://radiokot.ru/forum/ |
|
| управление программой с помощью кнопки https://radiokot.ru/forum/viewtopic.php?f=24&t=19707 |
Страница 1 из 4 |
| Автор: | larik [ Пн сен 21, 2009 23:27:35 ] |
| Заголовок сообщения: | управление программой с помощью кнопки |
доброе время суток Коты, недавно стал вопрос об управлении программой (скриптом, BAtником) с внешней кнопки, например нажал кнопку и запустился bat файл в котором написанно что с данного диска слить инфу на флешку, и результат например выводить загоранием светодиода. Но уточню что комп не имеет переферийных устройств то есть нет клавы мышки и монитора ибо работает автономно, если есть какие либо наработки или мысли то хотелось бы услышать. А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать |
|
| Автор: | Пухич [ Пн сен 21, 2009 23:33:09 ] |
| Заголовок сообщения: | Re: управление программой с помощью кнопки |
larik писал(а): А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать
Смотря что конкретно вы хотите. |
|
| Автор: | larik [ Пн сен 21, 2009 23:45:22 ] |
| Заголовок сообщения: | |
нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод |
|
| Автор: | Пухич [ Пн сен 21, 2009 23:59:02 ] |
| Заголовок сообщения: | |
larik писал(а): нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Запустилась прога - это понятно. А кто ее запустит? Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник. А если надо, чтобы резидента не было, значит нужно делать что-то умное, что будет вызывать какие-то прерывания, чтобы ОСь могла чего-то запустить. Можно сделать устройство, которое будет засылать в клавиатурный порт ПС/2 какое-то нажатие, которое, положим, запускает некую прогу. Сложновато будет. Проще на ЛПТ. |
|
| Автор: | larik [ Вт сен 22, 2009 00:04:05 ] |
| Заголовок сообщения: | |
Пухич писал(а): Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
согласен на такое =) точней даже впрочем так и предполагал тока что за прога и с чем ее едят ? потомучто проги которые я знаю они тока на вывод инфы а не на ввод |
|
| Автор: | Пухич [ Вт сен 22, 2009 00:41:22 ] |
| Заголовок сообщения: | |
Как это только на вывод? Если уж вы с портом работаете, то можете там что угодно делать. Разве нет? Разумеется речь о самодельной проге, готовых таких может и нет. Суть в следующем - в авторане висит простенькая прожка, она постоянно опрашивает ЛПТ-порт. Если на каком-то входе появляется ноль, значит кнопка нажата. Дальше что-то выполняется. Доступ к ЛПТ-порту можно в ХРюше получить через giveio. Распиновка ЛПТ-порта известна. Собсна все тут так просто, что даже думать нечего. |
|
| Автор: | izmmisha [ Вт сен 22, 2009 09:32:18 ] |
| Заголовок сообщения: | |
На самом деле лучше не в автозапуск, а чтобы демон был (или служба на вендовый лад). |
|
| Автор: | Alexey1969 [ Вт сен 22, 2009 10:55:43 ] |
| Заголовок сообщения: | |
Служба для такой задачи, думаю слишком... И с ЛПТ наверное не стоит связыватся, доступные драйвера под WIN не всегда коррктно работают. Лучше использовать COM (если есть конечно), с прерываниями вопросов не возникает, если нужны, и доступ из любой программы без всяких драйверов. Вообще то задачка, более чем проста. |
|
| Автор: | larik [ Вт сен 22, 2009 11:29:02 ] |
| Заголовок сообщения: | |
задача да не спорю проста но сталкиваюсь в первый раз с этим поэтому и спрашиваю P/S с програмированием не силен с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть |
|
| Автор: | ARV [ Вт сен 22, 2009 11:51:25 ] |
| Заголовок сообщения: | |
личку поглядите |
|
| Автор: | Пухич [ Вт сен 22, 2009 20:34:57 ] |
| Заголовок сообщения: | |
larik писал(а): с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть
Ну так в чем проблема? Могу мальца переделать одну прогу, будет она проверять бит порта, запускать любой файл (в ИНИшке можно будет указывать), затем выставлять единичку в другом бите порта. Правда службой делать не буду, только обычным приложением. Лень мне со службой морочиться. Вам, впрочем, разницы ведь никакой, верно? |
|
| Автор: | larik [ Вт сен 22, 2009 23:35:06 ] |
| Заголовок сообщения: | |
да лижбы работала =) |
|
| Автор: | Пухич [ Вт сен 22, 2009 23:45:41 ] |
| Заголовок сообщения: | |
Вы с АРВ о чем-то договорились, или еще нужна подобная прога? Если нужна, то тогда попробую к завтрему добраться до Билдера. Переходничок уже нашел на ЛПТ-порт, чтобы проверить работу проги, и сами сорцы нашел. |
|
| Автор: | larik [ Вт сен 22, 2009 23:48:39 ] |
| Заголовок сообщения: | |
ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет P/S откуда у бедного студента они |
|
| Автор: | Пухич [ Вт сен 22, 2009 23:52:34 ] |
| Заголовок сообщения: | |
larik писал(а): ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет
P/S откуда у бедного студента они Господи, при чем тут $$$? Ладно, потерпите. Точно сделаю, раз так надо. |
|
| Автор: | larik [ Вт сен 22, 2009 23:54:55 ] |
| Заголовок сообщения: | |
пасиб большое =) буду рад любой помощи |
|
| Автор: | Пухич [ Чт сен 24, 2009 17:42:22 ] | ||
| Заголовок сообщения: | |||
Короче, вот два архива - один с прогой, другой с драйвером giveio.sys (лень было вспоминать ВинАПИ, а на ассемблере я с закрытыми глазами напишу проверку ЛПТ-порта). Как драйвер ставить - там в файле написано. Дальше запускаешь прогу. Прога получает имя запускаемого приложения в виде параметра командной строки (это может быть и не приложение, а батник). Чтобы передать таким образом имя приложения программе, удобно создать ярлык и в нем после имени программы указать имя запускаемого приложения. В архиве есть такой ярлычег. При запуске прога пытается открыть указанное приложение для чтения, чтобы проверить его наличие, если его нет, то выдается месседж. Затем подключается драйвер, если его нет - опять же месседж. Затем прога ждет нажатия кнопки, соединяющей 10 ногу ЛПТ-порта с сигнальной землей. Имеется в виду полное нажатие, с отпусканием (дребезг контактов устраняется примерно на 100 мс). Затем идет попытка запустить указанное приложение, и если оно не запускается (прав нет на исполнение, или еще чего), то выдается месседж. Затем прога вырубается. Я только не понял, что из себя должна представлять сигнализация светодиодом, чего там надо проверять (и как вообще можно проверить исполнение батника?), поэтому тупо выводится на 9 ногу единица, если удалось запустить приложение. До этого там ноль. Только прямо на ногу порта светодиод не вешать, может погореть! Прога сляпана из кусков других программ, по размеру не оптимизирована, так что уж не обессудьте. Если что-то надо переделать - пишите.
|
|||
| Автор: | Пухич [ Чт сен 24, 2009 17:43:33 ] | ||
| Заголовок сообщения: | |||
Вот архив с драйвером.
|
|||
| Автор: | larik [ Чт сен 24, 2009 19:43:39 ] |
| Заголовок сообщения: | |
пасиб, ша на работе буду дома буду пробовать =) |
|
| Автор: | izmmisha [ Чт сен 24, 2009 20:37:42 ] |
| Заголовок сообщения: | |
Пухич писал(а): и как вообще можно проверить исполнение батника?
батник как и любая программа может вернуть код завершения, если не возвращать самим батником явно через exit, результатом будет код завершения последней выполняемой команды. Вот пример батника: Код: @echo off echo 123 exit /B 1 вот результат его выполнения: Код: C:\>test.bat
123 C:\>echo %errorlevel% 1 Ну и как принято если код завершения 0, то всё хорошо можно сигналить P.S. одноразовая прога что ли? один раз нажал на кнопку (что подключена к LPT порту), она выполнит действия и завершится? И еще, помню как то венда отмочила, вывела сообщение что не нашла мышку и клаву и предложила нажать кнопку ОК. Не повторяйте ошибок мелкософта, все сообщения программ такого рода должны записывать в лог файл. |
|
| Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


