Страница 1 из 4
управление программой с помощью кнопки
Добавлено: Пн сен 21, 2009 23:27:35
larik
доброе время суток Коты, недавно стал вопрос об управлении программой (скриптом, BAtником) с внешней кнопки, например нажал кнопку и запустился bat файл в котором написанно что с данного диска слить инфу на флешку, и результат например выводить загоранием светодиода. Но уточню что комп не имеет переферийных устройств то есть нет клавы мышки и монитора ибо работает автономно, если есть какие либо наработки или мысли то хотелось бы услышать. А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать

Re: управление программой с помощью кнопки
Добавлено: Пн сен 21, 2009 23:33:09
Пухич
larik писал(а): А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать

Смотря что конкретно вы хотите.

Добавлено: Пн сен 21, 2009 23:45:22
larik
нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Добавлено: Пн сен 21, 2009 23:59:02
Пухич
larik писал(а):нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Запустилась прога - это понятно. А кто ее запустит?
Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
А если надо, чтобы резидента не было, значит нужно делать что-то умное, что будет вызывать какие-то прерывания, чтобы ОСь могла чего-то запустить. Можно сделать устройство, которое будет засылать в клавиатурный порт ПС/2 какое-то нажатие, которое, положим, запускает некую прогу. Сложновато будет. Проще на ЛПТ.
Добавлено: Вт сен 22, 2009 00:04:05
larik
Пухич писал(а):
Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
согласен на такое =) точней даже впрочем так и предполагал тока что за прога и с чем ее едят ?
потомучто проги которые я знаю они тока на вывод инфы а не на ввод
Добавлено: Вт сен 22, 2009 00:41:22
Пухич
Как это только на вывод? Если уж вы с портом работаете, то можете там что угодно делать. Разве нет? Разумеется речь о самодельной проге, готовых таких может и нет.
Суть в следующем - в авторане висит простенькая прожка, она постоянно опрашивает ЛПТ-порт. Если на каком-то входе появляется ноль, значит кнопка нажата. Дальше что-то выполняется. Доступ к ЛПТ-порту можно в ХРюше получить через giveio. Распиновка ЛПТ-порта известна. Собсна все тут так просто, что даже думать нечего.
Добавлено: Вт сен 22, 2009 09:32:18
izmmisha
На самом деле лучше не в автозапуск, а чтобы демон был (или служба на вендовый лад).
Добавлено: Вт сен 22, 2009 10:55:43
Alexey1969
Служба для такой задачи, думаю слишком... И с ЛПТ наверное не стоит связыватся, доступные драйвера под WIN не всегда коррктно работают. Лучше использовать COM (если есть конечно), с прерываниями вопросов не возникает, если нужны, и доступ из любой программы без всяких драйверов. Вообще то задачка, более чем проста.
Добавлено: Вт сен 22, 2009 11:29:02
larik
задача да не спорю проста но сталкиваюсь в первый раз с этим поэтому и спрашиваю
P/S с програмированием не силен
с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть
Добавлено: Вт сен 22, 2009 11:51:25
ARV
личку поглядите
Добавлено: Вт сен 22, 2009 20:34:57
Пухич
larik писал(а):
с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть
Ну так в чем проблема? Могу мальца переделать одну прогу, будет она проверять бит порта, запускать любой файл (в ИНИшке можно будет указывать), затем выставлять единичку в другом бите порта.
Правда службой делать не буду, только обычным приложением. Лень мне со службой морочиться. Вам, впрочем, разницы ведь никакой, верно?
Добавлено: Вт сен 22, 2009 23:35:06
larik
да лижбы работала =)
Добавлено: Вт сен 22, 2009 23:45:41
Пухич
Вы с АРВ о чем-то договорились, или еще нужна подобная прога? Если нужна, то тогда попробую к завтрему добраться до Билдера. Переходничок уже нашел на ЛПТ-порт, чтобы проверить работу проги, и сами сорцы нашел.
Добавлено: Вт сен 22, 2009 23:48:39
larik
ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет

P/S откуда у бедного студента они

Добавлено: Вт сен 22, 2009 23:52:34
Пухич
larik писал(а):ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет

P/S откуда у бедного студента они

Господи, при чем тут $$$?
Ладно, потерпите. Точно сделаю, раз так надо.

Добавлено: Вт сен 22, 2009 23:54:55
larik
пасиб большое =) буду рад любой помощи
Добавлено: Чт сен 24, 2009 17:42:22
Пухич
Короче, вот два архива - один с прогой, другой с драйвером giveio.sys (лень было вспоминать ВинАПИ, а на ассемблере я с закрытыми глазами напишу проверку ЛПТ-порта). Как драйвер ставить - там в файле написано. Дальше запускаешь прогу.
Прога получает имя запускаемого приложения в виде параметра командной строки (это может быть и не приложение, а батник). Чтобы передать таким образом имя приложения программе, удобно создать ярлык и в нем после имени программы указать имя запускаемого приложения. В архиве есть такой ярлычег.
При запуске прога пытается открыть указанное приложение для чтения, чтобы проверить его наличие, если его нет, то выдается месседж. Затем подключается драйвер, если его нет - опять же месседж. Затем прога ждет нажатия кнопки, соединяющей 10 ногу ЛПТ-порта с сигнальной землей. Имеется в виду полное нажатие, с отпусканием (дребезг контактов устраняется примерно на 100 мс). Затем идет попытка запустить указанное приложение, и если оно не запускается (прав нет на исполнение, или еще чего), то выдается месседж. Затем прога вырубается.
Я только не понял, что из себя должна представлять сигнализация светодиодом, чего там надо проверять (и как вообще можно проверить исполнение батника?), поэтому тупо выводится на 9 ногу единица, если удалось запустить приложение. До этого там ноль. Только прямо на ногу порта светодиод не вешать, может погореть!
Прога сляпана из кусков других программ, по размеру не оптимизирована, так что уж не обессудьте. Если что-то надо переделать - пишите.
Добавлено: Чт сен 24, 2009 17:43:33
Пухич
Вот архив с драйвером.
Добавлено: Чт сен 24, 2009 19:43:39
larik
пасиб, ша на работе буду дома буду пробовать =)
Добавлено: Чт сен 24, 2009 20:37:42
izmmisha
Пухич писал(а):и как вообще можно проверить исполнение батника?
батник как и любая программа может вернуть код завершения, если не возвращать самим батником явно через exit, результатом будет код завершения последней выполняемой команды. Вот пример батника:
вот результат его выполнения:
Ну и как принято если код завершения 0, то всё хорошо можно сигналить
P.S. одноразовая прога что ли? один раз нажал на кнопку (что подключена к LPT порту), она выполнит действия и завершится?
И еще, помню как то венда отмочила, вывела сообщение что не нашла мышку и клаву и предложила нажать кнопку ОК. Не повторяйте ошибок мелкософта, все сообщения программ такого рода должны записывать в лог файл.