Запуск Inf файла из под VBS скрипта
Подскажите как мне запустить 123.inf файл из под VBS скрипта автоматом
|
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» самому.
|
Большое спс, Хорошо когда есть такие люди)
|
Появилась одна Проблемка для меня.
Скрипт и Inf файл находятся в одной папке, к примеру F:\Scripts\ на флешке, к подключению к разным компам буква меняется и VBS перестает находит inf файл.Возможно указать VBS путь, что бы он проверял только папку Scripts на наличие файла inf ?
|
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
|
Время: 14:51.
© OSzone.net 2001-