доброе время суток Коты, недавно стал вопрос об управлении программой (скриптом, BAtником) с внешней кнопки, например нажал кнопку и запустился bat файл в котором написанно что с данного диска слить инфу на флешку, и результат например выводить загоранием светодиода. Но уточню что комп не имеет переферийных устройств то есть нет клавы мышки и монитора ибо работает автономно, если есть какие либо наработки или мысли то хотелось бы услышать. А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать
Карма: 16
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
larik писал(а):
нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Запустилась прога - это понятно. А кто ее запустит?
Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
А если надо, чтобы резидента не было, значит нужно делать что-то умное, что будет вызывать какие-то прерывания, чтобы ОСь могла чего-то запустить. Можно сделать устройство, которое будет засылать в клавиатурный порт ПС/2 какое-то нажатие, которое, положим, запускает некую прогу. Сложновато будет. Проще на ЛПТ.
Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
согласен на такое =) точней даже впрочем так и предполагал тока что за прога и с чем ее едят ?
потомучто проги которые я знаю они тока на вывод инфы а не на ввод
Карма: 16
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
Как это только на вывод? Если уж вы с портом работаете, то можете там что угодно делать. Разве нет? Разумеется речь о самодельной проге, готовых таких может и нет.
Суть в следующем - в авторане висит простенькая прожка, она постоянно опрашивает ЛПТ-порт. Если на каком-то входе появляется ноль, значит кнопка нажата. Дальше что-то выполняется. Доступ к ЛПТ-порту можно в ХРюше получить через giveio. Распиновка ЛПТ-порта известна. Собсна все тут так просто, что даже думать нечего.
Карма: 4
Рейтинг сообщений: 22
Зарегистрирован: Чт мар 05, 2009 05:31:16 Сообщений: 622 Откуда: г. Кемерово
Рейтинг сообщения:0
Служба для такой задачи, думаю слишком... И с ЛПТ наверное не стоит связыватся, доступные драйвера под WIN не всегда коррктно работают. Лучше использовать COM (если есть конечно), с прерываниями вопросов не возникает, если нужны, и доступ из любой программы без всяких драйверов. Вообще то задачка, более чем проста.
Карма: 16
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
larik писал(а):
с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть
Ну так в чем проблема? Могу мальца переделать одну прогу, будет она проверять бит порта, запускать любой файл (в ИНИшке можно будет указывать), затем выставлять единичку в другом бите порта.
Правда службой делать не буду, только обычным приложением. Лень мне со службой морочиться. Вам, впрочем, разницы ведь никакой, верно?
Карма: 16
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
Вы с АРВ о чем-то договорились, или еще нужна подобная прога? Если нужна, то тогда попробую к завтрему добраться до Билдера. Переходничок уже нашел на ЛПТ-порт, чтобы проверить работу проги, и сами сорцы нашел.
Карма: 16
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
Короче, вот два архива - один с прогой, другой с драйвером giveio.sys (лень было вспоминать ВинАПИ, а на ассемблере я с закрытыми глазами напишу проверку ЛПТ-порта). Как драйвер ставить - там в файле написано. Дальше запускаешь прогу.
Прога получает имя запускаемого приложения в виде параметра командной строки (это может быть и не приложение, а батник). Чтобы передать таким образом имя приложения программе, удобно создать ярлык и в нем после имени программы указать имя запускаемого приложения. В архиве есть такой ярлычег.
При запуске прога пытается открыть указанное приложение для чтения, чтобы проверить его наличие, если его нет, то выдается месседж. Затем подключается драйвер, если его нет - опять же месседж. Затем прога ждет нажатия кнопки, соединяющей 10 ногу ЛПТ-порта с сигнальной землей. Имеется в виду полное нажатие, с отпусканием (дребезг контактов устраняется примерно на 100 мс). Затем идет попытка запустить указанное приложение, и если оно не запускается (прав нет на исполнение, или еще чего), то выдается месседж. Затем прога вырубается.
Я только не понял, что из себя должна представлять сигнализация светодиодом, чего там надо проверять (и как вообще можно проверить исполнение батника?), поэтому тупо выводится на 9 ногу единица, если удалось запустить приложение. До этого там ноль. Только прямо на ногу порта светодиод не вешать, может погореть!
Прога сляпана из кусков других программ, по размеру не оптимизирована, так что уж не обессудьте. Если что-то надо переделать - пишите.
батник как и любая программа может вернуть код завершения, если не возвращать самим батником явно через exit, результатом будет код завершения последней выполняемой команды. Вот пример батника:
Код:
@echo off echo 123 exit /B 1
вот результат его выполнения:
Код:
C:\>test.bat 123
C:\>echo %errorlevel% 1
Ну и как принято если код завершения 0, то всё хорошо можно сигналить
P.S. одноразовая прога что ли? один раз нажал на кнопку (что подключена к LPT порту), она выполнит действия и завершится?
И еще, помню как то венда отмочила, вывела сообщение что не нашла мышку и клаву и предложила нажать кнопку ОК. Не повторяйте ошибок мелкософта, все сообщения программ такого рода должны записывать в лог файл.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения