Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Лучшие статьи журнала ╚Компьютеры+Программы╩


Информационный Канал Subscribe.Ru

Здравствуйте, уважаемые читатели!

В этом выпуске рассылки публикуется статья, занявшая по результатам голосования третье место.


Александр КОЛОТЕНКО,
sasha@iniko.kharkov.ua

Сканирование через сеть

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

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

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

Предлагаем вам написать несложную утилиту, которая управляется посредством 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).

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

Александр КОЛОТЕНКО,
sasha@iniko.kharkov.ua


Подписаться на дискуссионный лист
Послать письмо на дискуссионный лист
Задать вопрос
Прислать свою статью для публикации в журнале
Просто поговорить
Получить именной бланк подписки на "бумажную" версию

До следующего выпуска!
Елена Полонская, редактор "К+П"
www.comizdat.com

Перепечатка материалов этой рассылки разрешается только по согласованию с редакцией журнала "Компьютеры+Программы"



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное