Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата Iska:
Что скажете? »
Спасибо, за направление...

А как в скрипте прописать правильно путь strPath2Save, чтобы скан создавался в той папке, из которой выбрали Создать - Новый скан???

Запускаю скрипт:
Код: Выделить весь код
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 = "C:\MyImage.jpg"           ' Полное имя файла для сохранения
Dim strFormat = wiaFormatJPEG                 ' Формат файла — *.jpg
Dim intQuality = 85                           ' Качество jpg
Dim intDPI = 150                              ' Разрешение — 150 dpi
Dim intHorizontalSize = (210 / 25.4) * intDPI ' Размер по горизонтали — A4
Dim intVerticalSize = (297 / 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
А в нем показывается ошибка в Dim strPath2Save = "C:\MyImage.jpg". Что не так????

Последний раз редактировалось Sisin, 20-11-2014 в 15:50.


Отправлено: 15:33, 20-11-2014 | #3