Статья размещена автором Бетке Сергей Сергеевич

Создание административной точки установки правой кнопкой

Не буду рассказывать, что такое административная точка установки (MSI), только приведу inf файл, регистрирующий дополнительные глаголы оболочки (windows shell verbs, или то, что мы видим в контекстном меню) для msi файлов. В частности, предлагаемый inf файл регистрирует глагол, который позволяет Вам одним щелчком создать административную точку установки для msi пакета.

Приведу inf файл.

;// дополнительные глаголы для msi файлов
;//
;// Copyright © 2009 'Группа Компаний ГАРО' 
;// Полное или частичное использование исходых текстов
;// допустимо с указанием авторства
;//
;// Автор: Бетке Сергей Сергеевич, (2009.10.04)

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

;// исходные диски, файлы, каталоги назначения ------------------------------

[SourceDisksNames]
1="msi itg Verbs registration","",1

[SourceDisksFiles]
msiVerbs.inf=1

[DestinationDirs]
Inf.CopyFiles = 17
Inf.DelFiles = 17

;// инсталляция -------------------------------------------------------------

[DefaultInstall]
CopyFiles = Inf.CopyFiles
AddReg = MSIVerbs.AddReg

[Inf.CopyFiles]
msiVerbs.Inf

[MSIVerbs.AddReg]
HKCR,Msi.Package\shell\createAdminImage,,,"Создать &сетевой образ"
HKCR,Msi.Package\shell\createAdminImage\command,,0x00020000,msiexec.exe /a "%L" TARGETDIR="%L.adm"

;// удаление
HKLM,%UninstallKey%,DisplayName,,"%UninstallDescription%"
HKLM,%UninstallKey%,UninstallString,,"RunDll32 setupapi.dll,InstallHinfSection DefaultUninstall 132 MSIVerbs.inf"

;// деинсталляция -----------------------------------------------------------

[DefaultUninstall]
DelFiles = Inf.DelFiles
DelReg = MSIVerbs.DelReg

[Inf.DelFiles]
MSIVerbs.Inf
MSIVerbs.PNF

[MSIVerbs.DelReg]
HKCR,Msi.Package\shell\createAdminImage
HKLM,%UninstallKey%

;// строковые константы -----------------------------------------------------

[Strings]
UninstallDescription=[ГАРО-ITG] - ITG - дополнительные глаголы msi файлов
UninstallKey=SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MSIVerbs

;// Конец файла--------------------------------------------------------------

Указанный файл создаёт глагол, который в свою очередь создаёт административную точку установки в папке <имя файла>.msi.adm. Буду крайне благодарен за совет, как можно в командной строке для глагола выделить из имени файла только каталог файла.

Отзывы » (5)

  1. Единственные более менее толковые комментарии по возможным параметрам командной строки для глагола оболочки (shell verb). В результате предложенного в указанной статье эксперимента нашёл параметр %W, который даёт нам родительский каталог для объекта (будь то для файла, будь то для папки). Поэтому буду пробовать следующую командную строку:

    msiexec.exe /a "%L" TARGETDIR="%W\..\adm"
    

    От указанной строки я ожидаю создание административной точки установки в каталоге adm на том же уровне, что и каталог, в котором размещён msi файл.
    По результатам тестирования включу в саму статью.

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка