Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '==================== sunbrother(гав-гав)яндекс ру ===== http://www.vbsedit.com/ =====
- Option Explicit
- Const ScannerDeviceType = 1
- Const ColorIntent = 1
- Const wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
- Dim objDeviceManager
- Dim objDeviceInfos
- Dim objDevice
- Dim objImageFile
- Dim objImageProcess
- Dim strPath2Save
- Dim strFormat
- Dim intQuality
- Dim intDPI
- Dim intHorizontalSize
- Dim intVerticalSize
- dim daty
- dim datm
- dim datd
- dim dath
- dim datn
- dim dats
- 'как бы ни было смешно - но это формирование даты и времени для имени файла
- daty = DatePart("yyyy",Now())
- datm = DatePart("m",Now())
- datd = DatePart("d",Now())
- dath = DatePart("h",Now())
- datn = DatePart("n",Now())
- dats = DatePart("s",Now())
- ' Задаём характеристики изображения
- strPath2Save = "d:\scan\" & daty & "-" & datm & "-" & datd & "-" & dath & "-" & datn & "-" & dats & ".jpg" ' Полное имя файла для сохранения
- strFormat = wiaFormatJPEG ' Формат файла — *.jpg
- intQuality = 85 ' Качество jpg
- intDPI = 150 ' Разрешение — 150 dpi
- intHorizontalSize = (210 / 25.4) * intDPI ' Размер по горизонтали — A4
- intVerticalSize = (296 / 25.4) * intDPI ' Размер по вертикали — A4
- Set objDeviceManager = WScript.CreateObject("WIA.DeviceManager")
- Set objDeviceInfos = objDeviceManager.DeviceInfos
- If objDeviceInfos.Count > 0 Then
- ' Выбираем устройство для сканирования. Если оно единственное, то сие произойдёт без отображения диалога.
- Set objDevice = WScript.CreateObject("WIA.CommonDialog").ShowSelectDevice(ScannerDeviceType, False, False)
- ' Кроме того, зная DeviceID устройства, можно использовать иной способ подключения, например:
- 'Dim objDeviceInfo
- '
- 'For Each objDeviceInfo In objDeviceManager.DeviceInfos
- ' WScript.Echo objDeviceInfo.DeviceID
- '
- ' If objDeviceInfo.DeviceID = "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" Then
- ' Set objDevice = objDeviceInfo.Connect
- ' End If
- 'Next
- If Not objDevice Is Nothing Then
- ' WScript.Echo objDevice.Properties.Item("Name") & " [" & objDevice.DeviceID & "]"
- ' WScript.Echo "Scanning..."
- With objDevice
- With .Items(1)
- ' Задаём требуемые характеристики изображения для сканирования
- With .Properties
- .Item("6146").Value = ColorIntent ' Цветовая модель (Current Intent)
- ' Разрешение…
- .Item("6147").Value = intDPI ' …по горизонтали (Horizontal Resolution)
- .Item("6148").Value = intDPI ' …по вертикали (Vertical Resolution)
- ' Начало области сканирования…
- .Item("6149").Value = 0 ' …по горизонтали (Horizontal Start Position)
- .Item("6150").Value = 0 ' …по вертикали (Vertical Start Position)
- ' Размер области сканирования…
- .Item("6151").Value = intHorizontalSize ' …по горизонтали (Horizontal Extent)
- .Item("6152").Value = intVerticalSize ' …по вертикали (Vertical Extent)
- End With
- ' Инициируем начало операции сканирования
- Set objImageFile = .Transfer()
- ' Конвертируем полученное изображение
- ' WScript.Echo "Converting..."
- Set objImageProcess = WScript.CreateObject("WIA.ImageProcess")
- With objImageProcess
- With .Filters
- .Add objImageProcess.FilterInfos("Convert").FilterID
- With .Item(1).Properties
- .Item("FormatID").Value = strFormat ' Формат изображения
- .Item("Quality").Value = intQuality ' Качество изображения
- End With
- End With
- Set objImageFile = .Apply(objImageFile)
- End With
- End With
- End With
- ' Если файл существует — предварительно удаляем его
- With WScript.CreateObject("Scripting.FileSystemObject")
- If .FileExists(strPath2Save) Then
- .DeleteFile strPath2Save
- End If
- End With
- ' Сохраняем полученное изображение
- objImageFile.SaveFile strPath2Save
- ' WScript.Echo "Complete."
- Set objDevice = Nothing
- Else
- WScript.Echo "Cancel scanning by user"
- End If
- Else
- WScript.Echo "No connected devices"
- End If
- Set objDeviceManager = Nothing
- Set objDeviceInfos = Nothing
- WScript.Quit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement