Как превратить обычный компьютер со сканером в "сканер-сервер", доступный по сети.

 

Читателям, наверное, приходилось сталкивались с ситуацией, когда необходимо отсканировать изображения, а компьютер, к которому непосредственно подключен сканер, занят. Стоит ли говорить, что обычно это происходит в самый неподходящий момент.

 

Сейчас существует достаточно большое количество утилит, позволяющих производить сканирование. Поставляются они чаще всего вместе со сканерами и, как правило, узко специализированны под каждую модель.


Предлагаем вам написать несложную утилиту, которая управляется посредством Telnet и позволяет руководить процессом сканирования на удаленной рабочей станции. Впрочем, как будет видно дальше, после несложной модификации этой утилиты вы сможете управлять любой программой в ОС Windows.

 

 

Для написания утилиты нужно использовать Microsoft Visual Basic версии 5.0 или старше.


Шаг 1

 

 

Создадим форму и разместим на ней следующие элементы:

 

Timer;
Winsock Control (2 шт.);
ImgScan (в списке элементов обозначен как "Kodak Image Scan Control").


Шаг 2

Теперь для каждого элемента напишем обработчик событий.

Sub Pause (duration) - функция задержки - необходима, чтобы программа могла "дождаться" конца процесса сканирования.

 

Dim Current As Long
Current = Timer
Do Until Timer - Current >= duration
DoEvents
Loop
End Sub

Sub ActivateScanner() - активация сканера
ImgScan1.StartScan
End Sub

Sub DoScan() - сканирование
AppActivate "PRIMAX PowerTWAIN", True
DoEvents
SendKeys "%S", True
SendKeys "P", True
Pause 10
DoEvents
SendKeys "%L", True
SendKeys "A", True
Pause 7
DoEvents
SendKeys "%P", True
SendKeys "R", True
Pause 3
DoEvents
SendKeys "", True
DoEvents
SendKeys "P", True
DoEvents
Pause 10
SendKeys "%F", True
SendKeys "C", True
DoEvents
End Sub

Private Sub Form_Load()


- определяем порты сервера при запуске программы


Scan1.LocalPort = 17097
Scan2.LocalPort = 17098
Scan1.Listen
End Sub

Private Sub Scan1_ConnectionRequest(ByVal requestID As Long)


- установка соединения


Scan2.Accept requestID
End Sub

Private Sub Scan2_DataArrival(ByVal bytesTotal As Long)


- прием данных и выполнение команд


Dim Rcv1 As String
Scan2.GetData Rcv1
If Left(Rcv1, 5) = "pscan" Then
ActivateScanner
End If
If Left(Rcv1, 5) = "jscan" Then
DoScan
End If
End Sub

Private Sub Timer1_Timer() - переинициализация портов по таймауту
Scan1.Close
Scan2.Close
Scan1.LocalPort = 17097
Scan2.LocalPort = 17098
Scan1.Listen
End Sub
 


Функция SendKeys

 

Функция SendKeys используется для посылки необходимых комбинаций клавиш в активное приложение. Фактически, мы выполняем те же действия, которые обычно производит пользователь, собираясь что-либо отсканировать. Программа имитирует последовательность нажатия клавиш и ожидания завершения сканирования. Для начала сканирования достаточно соединиться через телнет с машиной, на которой запущенна утилита на порт 17097, затем послать команды "pscan" и "jscan". Все! Можно забирать с рабочей станции готовый файл. Данная программа была опробована со сканером PRIMAX Colorado 600dpi и пакетом программ для сканирования PRIMAX Power Twain. Для других видов ПО необходима модификация посылаемых в приложение набора клавиш.

 

Совет. У элемента ImgScan есть свойство Image. В нем хранится путь и имя файла, в который будет записана отсканированная картинка. Измените его так, чтобы вы могли работать с этим файлом через сеть. При тестировании программы был получен файл формата *.tif размером в 1,5 Мб (при разрешении сканирования 75 dpi).

Конечно, программа не претендует на универсальность, но в случае использования подобного ПО процесс сканирования немного упрощается.

2004.04.16
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".