Что нового

Получение информации о файле

lettterssino

Знающий
Сообщения
109
Репутация
10
Добрый день, подскажите я всю голову изломал и даже зачатка нет того, как сделать. Суть в том, что надо из msi/msp файлов получить ProductCode и PatchGuid.К примеру есть Guid в свойстве файла, но как его получить не знаю
 

Вложения

  • Guid.png
    Guid.png
    10.9 КБ · Просмотры: 11
Последнее редактирование:

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
Тут гляньте.
Код:
$sMSI = FileOpenDialog("MSI Properties", @ScriptDir, "Windows Installer Files (*.msi)")

$oInstaller = ObjCreate("WindowsInstaller.Installer")
$oDB = $oInstaller.OpenDataBase($sMSI, 0)
$oView = $oDB.OpenView("SELECT Property,Value FROM Property")

$oView.Execute()

$oCount = 0


While @error = 0
    $oRecords = $oView.Fetch
        If Not (IsObj($oRecords)) Then ExitLoop ;<======

    $oPropValue = $oRecords.StringData(2)
    $oPropName = $oRecords.StringData(1)

    If $oPropName <> "" Then
        $oCount += 1
        ConsoleWrite($oPropName & " = " & $oPropValue & @CRLF)
    EndIf
WEnd
 
Последнее редактирование:
Автор
lettterssino

lettterssino

Знающий
Сообщения
109
Репутация
10
Тут гляньте.
Код:
$sMSI = FileOpenDialog("MSI Properties", @ScriptDir, "Windows Installer Files (*.msi)")

$oInstaller = ObjCreate("WindowsInstaller.Installer")
$oDB = $oInstaller.OpenDataBase($sMSI, 0)
$oView = $oDB.OpenView("SELECT Property,Value FROM Property")

$oView.Execute()

$oCount = 0


While @error = 0
    $oRecords = $oView.Fetch
        If Not (IsObj($oRecords)) Then ExitLoop ;<======

    $oPropValue = $oRecords.StringData(2)
    $oPropName = $oRecords.StringData(1)

    If $oPropName <> "" Then
        $oCount += 1
        ConsoleWrite($oPropName & " = " & $oPropValue & @CRLF)
    EndIf
WEnd
Да , для msi это идеально. Но вот как из msp выдергивать вообще не получается.
 
Верх