Advertisement
Guest User

Untitled

a guest
Nov 8th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2.  
  3. Const ScannerDeviceType = 1
  4. Const ColorIntent = 1
  5. Const wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
  6.  
  7.  
  8. Dim objDeviceManager
  9. Dim objDeviceInfos
  10. Dim objDevice
  11.  
  12. Dim objImageFile
  13. Dim objImageProcess
  14.  
  15. Dim strPath2Save
  16. Dim strFormat
  17. Dim intQuality
  18. Dim intDPI
  19. Dim intHorizontalSize
  20. Dim intVerticalSize
  21.  
  22. dim daty
  23. dim datm
  24. dim datd
  25. dim dath
  26. dim datn
  27. dim dats
  28.  
  29. 'как бы ни было смешно - но это формирование даты и времени для имени файла
  30. daty = DatePart("yyyy",Now())
  31. datm = DatePart("m",Now())
  32. datd = DatePart("d",Now())
  33. dath = DatePart("h",Now())
  34. datn = DatePart("n",Now())
  35. dats = DatePart("s",Now())
  36.  
  37.  
  38.  
  39. ' Задаём характеристики изображения
  40. strPath2Save      = "d:\scan\" & daty & "-" & datm & "-" &  datd & "-" &  dath & "-" &  datn & "-" &  dats & ".jpg"      ' Полное имя файла для сохранения
  41. strFormat         = wiaFormatJPEG         ' Формат файла — *.jpg
  42. intQuality        = 85                    ' Качество jpg
  43. intDPI            = 150                   ' Разрешение — 150 dpi
  44. intHorizontalSize = (210 / 25.4) * intDPI ' Размер по горизонтали — A4
  45. intVerticalSize   = (296 / 25.4) * intDPI ' Размер по вертикали — A4
  46.  
  47.  
  48. Set objDeviceManager = WScript.CreateObject("WIA.DeviceManager")
  49. Set objDeviceInfos = objDeviceManager.DeviceInfos
  50.  
  51. If objDeviceInfos.Count > 0 Then
  52.     ' Выбираем устройство для сканирования. Если оно единственное, то сие произойдёт без отображения диалога.
  53.     Set objDevice = WScript.CreateObject("WIA.CommonDialog").ShowSelectDevice(ScannerDeviceType, False, False)
  54.     ' Кроме того, зная DeviceID устройства, можно использовать иной способ подключения, например:
  55.    'Dim objDeviceInfo
  56.    '
  57.    'For Each objDeviceInfo In objDeviceManager.DeviceInfos
  58.    '    WScript.Echo objDeviceInfo.DeviceID
  59.    '    
  60.    '    If objDeviceInfo.DeviceID = "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" Then
  61.    '        Set objDevice = objDeviceInfo.Connect
  62.    '    End If
  63.    'Next
  64.    
  65.     If Not objDevice Is Nothing Then
  66. '        WScript.Echo objDevice.Properties.Item("Name") & " [" & objDevice.DeviceID & "]"
  67. '        WScript.Echo "Scanning..."
  68.        
  69.         With objDevice
  70.             With .Items(1)
  71.                 ' Задаём требуемые характеристики изображения для сканирования
  72.                With .Properties
  73.                     .Item("6146").Value = ColorIntent             ' Цветовая модель (Current Intent)
  74.                    
  75.                     ' Разрешение…
  76.                    .Item("6147").Value = intDPI                  ' …по горизонтали (Horizontal Resolution)
  77.                    .Item("6148").Value = intDPI                  ' …по вертикали (Vertical Resolution)
  78.                    
  79.                     ' Начало области сканирования…
  80.                    .Item("6149").Value = 0                       ' …по горизонтали (Horizontal Start Position)
  81.                    .Item("6150").Value = 0                       ' …по вертикали (Vertical Start Position)
  82.                    
  83.                     ' Размер области сканирования…
  84.                    .Item("6151").Value = intHorizontalSize       ' …по горизонтали (Horizontal Extent)
  85.                    .Item("6152").Value = intVerticalSize         ' …по вертикали (Vertical Extent)
  86.                End With
  87.                
  88.                 ' Инициируем начало операции сканирования
  89.                Set objImageFile = .Transfer()
  90.                
  91.                 ' Конвертируем полученное изображение
  92. '                WScript.Echo "Converting..."
  93.                
  94.                 Set objImageProcess = WScript.CreateObject("WIA.ImageProcess")
  95.                
  96.                 With objImageProcess
  97.                     With .Filters
  98.                         .Add objImageProcess.FilterInfos("Convert").FilterID
  99.                        
  100.                         With .Item(1).Properties
  101.                             .Item("FormatID").Value = strFormat  ' Формат изображения
  102.                            .Item("Quality").Value  = intQuality ' Качество изображения
  103.                        End With
  104.                     End With
  105.                    
  106.                     Set objImageFile = .Apply(objImageFile)
  107.                 End With
  108.             End With
  109.         End With
  110.        
  111.         ' Если файл существует — предварительно удаляем его
  112.        With WScript.CreateObject("Scripting.FileSystemObject")
  113.             If .FileExists(strPath2Save) Then
  114.                 .DeleteFile strPath2Save
  115.             End If
  116.         End With
  117.        
  118.         ' Сохраняем полученное изображение
  119.        objImageFile.SaveFile strPath2Save
  120.        
  121. '        WScript.Echo "Complete."
  122.        
  123.         Set objDevice = Nothing
  124.     Else
  125.         WScript.Echo "Cancel scanning by user"
  126.     End If
  127. Else
  128.     WScript.Echo "No connected devices"
  129. End If
  130.  
  131. Set objDeviceManager = Nothing
  132. Set objDeviceInfos   = Nothing
  133.  
  134. WScript.Quit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement