Как узнать если scanner закончил работу

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Как узнать если scanner закончил работу

Сообщение val » 11.04.2006 (Вт) 20:53

Имеется scanner который сканирует документ (.TIF) в определенную директорию. Программа, которая просматривает эту дерикторию подхватывает этот документ и отправляет на server.

Проблема состаит в том, что не получается определить закончил ли scanner сканировать этот документ.

Я пытался открывать фаил во время сkанирования и ловить IO exception "used by another process...", но это работает с PDF и другими форматами, а не с TIF

Чего делать та????
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.04.2006 (Ср) 4:19

И каким же путём программа просматривает директорию?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 12.04.2006 (Ср) 12:07

val
Есть такая вещь - FileSystemWatcher :D
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

.link
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 04.03.2006 (Сб) 16:21

Подскажи какими средствами сканируешь?

Сообщение .link » 12.04.2006 (Ср) 14:52

Какой класс/Элемент используешь для сканирования?
Если вы спорите с идиотом, он, вероятнее всего, занят тем-же.

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 12.04.2006 (Ср) 16:37

GSerg,
Программа использует timer для просматривания дериктории.

.link,
Моя программа(Windows Service) не сканирует, а просто просматривает определённую директорию и обрабатывает файлы которые выплёвывает сканер. Моя проблема в том чтобы схватить фаил после сканирования, а не во время его.

mdx,
FileSystemWatcher Created event происходит не во время окончания копирования файла а в самом начале. :wink:
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 12.04.2006 (Ср) 16:40

Можно смотреть запущен ли процесс, если да, то не трогать файл, если нет то трогать :roll:

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 12.04.2006 (Ср) 16:56

Ramzes,
User обычно использует для сканирования программу(ехе) которая приходит вместе со сканером. Это обычный User Interface, который позволяет перед сканированием выбрать формат, DPI, т.д, и нажать кнопку "scan"

Если эта программа запущена, то это ещё не означает что user сканирует в данный момент. :roll:
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.04.2006 (Ср) 20:58

Если по-другому не получается, может попробовать по размеру файла?
Если файл не увеличился в размере за определенный промежуток времени (выбранный опытным путем), то велика вероятность того, что процесс сохранения изображения в этот файл завершен.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 12.04.2006 (Ср) 21:34

Так и сделал, только не надёжно всё это. Если например paper jams, тогда я схвачу не законченный фаил.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 13.04.2006 (Чт) 6:19

Как вариант:
Посмотреть спецификацию TIFF-формата, возможно есть признак конца файла? Вернее, если мне не изменяет память, в нем есть поля, указывающие на длину...

например
http://www.opennet.ru/docs/formats/tiff.txt
Max

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 14.04.2006 (Пт) 0:13

FileSystemWatcher Created event происходит не во время окончания копирования файла а в самом начале.


Используй FileSystemWatcher_Changed, происходит при закрытии файла.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList