Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запуск Inf файла из под VBS скрипта (http://forum.oszone.net/showthread.php?t=230070)

O L E G 11-03-2012 17:00 1876937

Запуск Inf файла из под VBS скрипта
 
Подскажите как мне запустить 123.inf файл из под VBS скрипта автоматом

Iska 12-03-2012 02:36 1877336

O L E G, для не исполняемых файлов нет понятия «запустить». Для них применимо понятие «исполнить глагол, привязанный к данному типу файлов». Для «*.inf» глаголы перечислены в «HKEY_CLASSES_ROOT\inffile\shell».

Предположим, что речь в «запустить 123.inf файл» шла о глаголе «Install» («&Установить»):
Код:

Option Explicit

Dim objShell
Dim objFolder
Dim objFolderItem

Set objShell  = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("E:\Песочница\0126")

If Not objFolder Is Nothing Then
        Set objFolderItem = objFolder.ParseName("123.inf")
       
        If Not objFolderItem Is Nothing Then
                objFolderItem.InvokeVerb "Install"
               
                Set objFolderItem = Nothing
        Else
                WScript.Echo "Can't find [123.inf] in [E:\Песочница\0126]"
        End If
       
        Set objFolder = Nothing
Else
        WScript.Echo "Can't find [E:\Песочница\0126]"
End If

Set objShell = Nothing

WScript.Quit 0

Либо прочитать из реестра содержимое параметра «HKEY_CLASSES_ROOT\inffile\shell\Install\command\(Default)»:
Код:

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1
и запускать «rundll32.exe» напрямую с параметром «<путь>\123.inf» самому.

O L E G 12-03-2012 09:29 1877477

Большое спс, Хорошо когда есть такие люди)

O L E G 12-03-2012 10:01 1877494

Появилась одна Проблемка для меня.
Скрипт и Inf файл находятся в одной папке, к примеру F:\Scripts\ на флешке, к подключению к разным компам буква меняется и VBS перестает находит inf файл.Возможно указать VBS путь, что бы он проверял только папку Scripts на наличие файла inf ?

Iska 12-03-2012 10:25 1877511

O L E G, следующий скрипт будет искать одноимённый файл «*.inf», расположенный в той же папке, что и сам скрипт (например: «e:\Temp\123.vbs» будет пытаться найти «e:\Temp\123.inf»):
Код:

Option Explicit

Dim strFolder
Dim strFile

Dim objShell
Dim objFolder
Dim objFolderItem

With WScript.CreateObject("Scripting.FileSystemObject")
        strFolder = .GetParentFolderName(WScript.ScriptFullName)
        strFile  = .GetBaseName(WScript.ScriptName) & ".inf"
End With

Set objShell  = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(strFolder)

If Not objFolder Is Nothing Then
        Set objFolderItem = objFolder.ParseName(strFile)
       
        If Not objFolderItem Is Nothing Then
                objFolderItem.InvokeVerb "Install"
               
                Set objFolderItem = Nothing
        Else
                WScript.Echo "Can't find [" & strFile & "] in [" & strFolder & "]"
        End If
       
        Set objFolder = Nothing
Else
        WScript.Echo "Can't find [" & strFolder & "]"
End If

Set objShell = Nothing

WScript.Quit 0


O L E G 12-03-2012 11:19 1877534

ОК спасибо все работает


Время: 14:51.

Время: 14:51.
© OSzone.net 2001-