WixBootstrapper. Как запустить EXE с правами администратора?
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 13.03.20 20:52
Оценка:
... Что же оно все так через жопу сделано?

Есть MSI (Wix 3.11) который упакован в EXE (WixBootsrapper).

В процессе установки (в начале или в конце) нужно запустить VSIXInstaller.exe с правами админа.

Где находится VSIXInstaller.exe я определяю динамически, в процессе инициализации WixBootsrapper-а.

Для запуска exe-шников предлагают юзать метод IBootstrapperEngine::LaunchApprovedExe.

STDMETHOD(LaunchApprovedExe)(
    __in_opt HWND hwndParent,
    __in_z LPCWSTR wzApprovedExeForElevationId,
    __in_z_opt LPCWSTR wzArguments,
    __in DWORD dwWaitForInputIdleTimeout
    ) = 0;


wzApprovedExeForElevationId указывает на ключ реестра (HKLM) в котором находится путь к exe-файлу.

То есть, ...ля, как я понимаю, нужно сначала записать путь в реестр, а потом оно оттуда его прочитает и использует.

Для записи в HKLM нужны права администратора.

Замкнутый круг.

Собственно вопрос

Кто-нибудь успешно решал эту задачу с LaunchApprovedExe? Как его правильно готовить?

-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Отредактировано 16.03.2020 5:52 DDDX . Предыдущая версия . Еще …
Отредактировано 14.03.2020 6:36 DDDX . Предыдущая версия .
Отредактировано 13.03.2020 20:54 DDDX . Предыдущая версия .
Отредактировано 13.03.2020 20:53 DDDX . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.