Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


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» самому.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:36, 12-03-2012 | #2