Pull to refresh

Comments 45

Может это какой-то неведомый мне сленг, но слово «кАстылей» в заголовке очень режет глаза
Сказать честно, информации об этом довольно мало, гугл не открыл мне Америки как и msdn.
Первая ссылка в гугле по первому пришедшему в голову запросу (scan event handler site:microsoft.com). У персонажа получилось только с HP ScanJet 6300C, ключевые слова в виде WIA COM там есть. Как можно было гуглить и не найти информации, не особо ясно, видимо, у меня какой-то другой гугль.
Это я видел. Там описан вариант отдельно запущенного процесса, который регистрирует себя на кнопки пока висит в памяти. К тому же, по описанной документации работают только два события: на коннект и дисконект. На остальные сканер никак не реагирует вообще. Эту же проблему кто-то описывал в сети тоже.
EventID полностью сопадают со значениями в реестре как и в msdn, но абсолютно никак не реагируют(
А… написано по той же ссылке в комментариях:
«First two events work — both start dm_OnEvent; event for button was pressed dont work.» Тоже самое и у нас. Но нас изначально висячий процесс не устраивал. Зачем он нужен.
Как же много сложного надо сделать, чтобы сделать просто.

А вообще статья напомнила мне недавно прочитанную книгу Психбольница в руках пациентов. В ней Алан Купер не обошел вниманием тему «софта для железа»
Это очень просто как оказалось. Я просто расписал этапы что я узнал и выложил информацию об этом.

Нужно всего то создать ключ в реестре с адресом вашего приложения и перезагрузится. Потом назначить на кнопку приложение и все, оно работает. А книгу эту давно лет 5 назад читал.
Картинка доказывает, что на habrastorage можно успешно выкладывать PNGZIP.

Это полезно.
Но не очень удобно. win8 стандартный архиватор отказывается открывать.
Shift+R.Click = Открыть с помощью
не помогает?
Стандартнй архиватор от винды 8 не хочет читать файл этот. Как мышкой этот файл не подтолкни архиватору)
> Утилита для вызова сканирования через WIA пользуется профилем по умолчанию, который настраивается тут.
Этот апп начинает процесс сканирования, я правильно понял?
А потом другому аппу через настройки в реестре передаются данные?
Туплю.
Утилита находит первый сканер в системе, просит его сделать скан, положив его по адресу прописанному параметром. (Тоже самое что cmdtwain) Скан делается с профилем, который в системе установлен по умолчанию.( Умолчания это 300 точек, яркость контрастность по 0. )

Менять профиль можно там, где я показал на картинке. (ну малоли кому там нужно 150 точек и по ярче?) Это все виндовые возможности из коробки.
Реестр юзать не обязательно, он нужен только если вы хотите запускать прямо с кнопок сканера эту утилиту. Нажали на кнопку «autoscan», скан сохранился в нужную папку. Можно создать ярлык на утилиту с прописанным в параметре местом сохранения и пользоваться им с рабочего стола к примеру. Но тут полная альтернатива cmdtwain для этого есть.
И вот это называется «без костылей»?
А в чем костыли? Если мы воспользовались способом, которым регистрируются все официальные приложения — только нет нигде об этом достаточной информации. Пришлось добывать. Способ добычи я описал? заодно расписал все что мог.

Там все просто как паровоз: одна запись в реестр, перезагрузка, назначение клавиши. Все. Мы сделали только свою утилиту тихого сканирования, остальное стандартные фишки windows.
Это утилита делает? Или это надо вручную делать? Из статьи мне непонятно.
Если хотите, можете в ручную. Если не понимаете, то конце статьи есть пункт «Установка». Если будут вопросы пишите.
Утилита запись в реестр делает сама. За замечание спасибо, очень важно, дополню.
Сбивает с толку компоновка статьи.
«Вот мы будем работать с тем-то и тем-то. реестр, реестр, реестр, реестр, реестр,… Утилита».
Если б было написано «вот утилита, которая делает возможным сканирование и тд и тп в один клик. А вот, что она делает под капотом» — было бы понятнее.
Прочитав «без окон», уже было надеялся увидеть инструкции для Linux…
Так на линкус то никто не жалуется. Там же все проще в разы? С windows как раз такие игры понадобились. Хотя и тут, как оказалось, проблемы то особой и не было никогда. Я думал все сложнее. Очень плохо с документацией на эту тему было. Судя по интернету, статья нуждалась в написании чтобы постараться закрыть течь негодования.
Круто. Вот это реально круто. Я когда-то для удобного сканирования тупо создал утилиту, отправляющую сочетания клавиш окну сканирования в винде хр, по кругу работавшую с мастером сканирования…
Можно создать ярлык утилите, а ему же можно стандартными средствами в свойствах назначить горячии клавиши. Во времена XP я был молод и это мне было до лампочки)
Крутяк. Я как заядлый виндузятник хочу гуевый фейс для проги, чтобы абсолютно всё можно было настроить в нём (хватит ведь и одного окошка), но в целом и так сойдёт, спасибо.
Есть замечательная утилита iCopy которая сканирует, копирует и сохраняет в Pdf с одной кнопки ) Попробуйте…
iCopy не прописывается на кнопки сканера.
Хорошая утилита, а как насчет исходников? а то паранойя дает о себе знать/
Да гляньте любым дизасемблером, так надежнее)
К сожалению, я не настолько крут, чтобы понимать ассемблер. :(
Сори) декомпилятор конечно) C# на ура должен открыться вплоть до исходника)
Класс WIAScanner не корректно декомпилируется. Поделитесь пожалуйста исходниками. Дело в том, что из реестра не выходит вызывать программу с параметрами, а без передачи параметров она не позволяет выбрать место для сохранения изображения.
Что бы изменения вступили в силу после редактирования реестра достаточно перезапустить службу «Служба загрузки изображений Windows (WIA)»
Делается это так:
net stop stisvc
net start stisvc
Товарищи, а как это дружит с простыми МФУ? Вот стоит например Canon 3010 и у него нет кнопки скан. Есть небольшая локалка на 10 компов и для сканирования приходится выгонять человека из-за компьютера, куда включен МФУ. Как можно сделать сканирование на МФУ по нажатию кнопки, чтобы не выгонять человека?
Но у этого МФУ есть другие кнопки. Если сканер получает уведомление о нажатии хоть одной из кнопок, то уже можно сделать.
Какие события, например, высыпает программа?
МФУ Canon MF3228 — с CmdTwain сканирует токлько 1/4 от А4 независимо от параметров коммандной строки. Попробовал QTwain — то же самое. Качаю visual studio чтобы скомпилировать предложенный в конце статьи visual basic исходник.
Вам не нужна для этого студия., компилятор идет отдельно. Да, с этим моментом я пока тоже для себя не разобрался. Где то что то задается. Не на всех компах проявляется. Пока я от этих экспериментов отошел, через месяц другой вернусь.
Удалось отсканировать с помощью visual basic скрипта по ссылке pastebin.com/ce5d8yFi. Да, для компиляции понадобился VBSedit, ссылка на него в начале скрипта. Изначально сканировало 1-битную картинку, за гуглил, добавил строку после «With .Properties» (75 строка)
.Item("4104").Value = 24 ' Битность цветности
24 для цветных картинок и 8 для оттенков серого.
Планирую сделать приложение на qt, которое будет работать как простой веб сервер — запускать его на компе с подключенным сканером, по запросу сканировать и отдавать файл.
Вам для чего это нужно? Сканы отдавать на сайт?
Хочу настроить сетевой сканер, также как сетевой принтер. Человек положил листочек, вернулся к совему компу, открыл браузер, нажал кнопочку, сканер сосканировал на сервере в папку и отдал файл на скачивание. Также, смогу добавить кнопочку «со сканера» рядом с кнопкой «приложить файл» в корпоративной базе данных.
Сколько человек пользуются сканером? Может проще на каждую кнопку повесить свой путь до папки пользователя? Файл на скачивание через браузер как то жестоко. Может проще всем в одну кучу документы сливать а по сети до них уже доберуться?
Как вариант. Не нравится то, что, во-первых, все будут видеть чужие файлы, во-вторых, не работает логика — нажал-получил, а будет нажал-поискал-получил. Крутым решением было бы написать драйвер виртуального WIA (TWAIN?) устройства, чтобы можно было сканировать с других программ. В интернете можно найти подобные платные программы (для организации сетевого сканера), но я их не изучал.
WIA это компонент системы, им может пользоваться программа или нет по своему желанию. Если человеку далеко не нужно ходить по комнате, то логика нажал получил будет работать, потому что новые файлы всегда сверху, если отсортировать по изменениям.
Sign up to leave a comment.

Articles