Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.26;
Скачать: CL | DM;

Вниз

InnoSetup и манифест   Найти похожие ветки 

 
Кто б сомневался ©   (2010-09-13 18:33) [0]

Нужно в манифесте инсталлятора AsInvoker заменить на requireAdministrator.
Можно ли это сделать в скрипте? Как это сделать проще всего, может можно прописать манифест в скрипте инсталлятора?
Дело в том что на Win 7 при запуске программ, которые требуеют админа, инсталлятор не может запусить прогу. Пишет ошибку. Как раз по этой причине.


 
Eraser ©   (2010-09-13 18:42) [1]

там флажок должен быть специальный.


 
Кто б сомневался ©   (2010-09-13 18:55) [2]

Нету флажка.

Там есть параметр

[Setup]: PrivilegesRequired = admin - но это не то (он по дефолту ставит admin).
Все равно invoker в манифесте.
Каждый раз править после билда неохота. Может как то автоматом можно сделать?


 
Дмитрий Тимохов   (2010-09-13 20:51) [3]

нет тама флажка.

найди по исходникам asInvoker. там будет функция, которая меняет прямо в бинарнике asInvoker на нужное. выдери ее и выполни в своей консольной утилите (тебе написать надо).

там суть в том, что манифест защивается намерство с asInvoker, но оставляется место - пробелы - чтобы потом заменить на нужное значение, если тебе надо.

барак в общем ) но работает.

вообще, обычно не надо менять манифест. Win7 сама определяет, что это приложение является инсталлятором.


 
Дмитрий Тимохов   (2010-09-13 20:54) [4]

вообще странно, что не запускается. должно запускаться.

т.е. win7 должен определить, что приложение требует админа и предложить перейти в админа. у тебя нет такого, вижу... странно.


 
Дмитрий Тимохов   (2010-09-13 22:03) [5]

вообще, может, у тебя как-то хитро назвается файл с дистрибутивом? назови, чтобы было setup в названии.


 
TIF ©   (2010-09-13 22:25) [6]

Я думаю дело в параметре
[Setup]
PrivilegesRequired=неправильное_значение


 
TIF ©   (2010-09-13 22:26) [7]

Тьфу. Не увидел (
> но это не то (он по дефолту ставит admin).


 
TIF ©   (2010-09-13 22:31) [8]

Может версия InnoSetup старая?

Вот в Inno Setup 5.3.7 были изменения на эту тему...
The PrivilegesRequired [Setup] section directive can now be set to lowest. On Windows Vista and later this instructs Setup to not request elevated rights (via a User Account Control dialog) even if it was started by a member of the Administrators group. Do not use this setting unless you are sure your installation will run successfully on unprivileged accounts. On Windows NT/2000/XP/2003, lowest behaves the same as none.


 
Кто б сомневался ©   (2010-09-13 22:34) [9]


> найди по исходникам asInvoker. там будет функция, которая
> меняет прямо в бинарнике asInvoker на нужное. выдери ее
> и выполни в своей консольной утилите (тебе написать надо).
>  
>
> там суть в том, что манифест защивается намерство с asInvoker,
>


> Win7 сама определяет, что это приложение является инсталлятором.


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

Подредактировать то легко в любом resхакере.
Можно хоть сочинения льва толстого всунуть туда. Думаю как это сделать в автомате.
Setup есть в названии.
Win 7 - запускаю инсталлятор, устанавливаю прогу. Все ок. По окончании инсталяции, инсталятор может запустить прогу (если стоит галка) - так вот в этот момент при запуске проги, вылезает что нужны привилегии для повышения (т.к. сама прога требует админских прав).
Если установить requireAdministrator в манифесте инсталятора все ок.
Но каждый раз лезть в ресурсы неохота.


 
TIF ©   (2010-09-13 22:40) [10]

Ааа... Вопрос-то не про инсталлятор, а про запуск установленной программы
Тогда
http://forum.sources.ru/index.php?showtopic=297176
решить проблему с запуском оригинальных прав directx всё-таки помог флаг shelexec (или runascurrentuser) в секции [Run]


 
Дмитрий Тимохов   (2010-09-13 23:34) [11]


> Кто б сомневался ©   (13.09.10 22:34) [9]


ок. я понял тебя теперь.

я же тебе говорю - есть в самих исходниках инно функция, которая меняет привилегии в манифесте. НО!!! Она нигде в исходниках не используется.
функцию ищи по исходникам по строке asInvoker - там одно место.

ты можешь ее просто выдрать и пользоваться своем командном файле - утилитку тебе нужно будет написать.

(я пользуюсь inno из командной строки, поэтому мне просто было запускать после сборки утилитку).

деталей не помню сейчас - я в итоге отказался от повышения привилегий в манифесте. но вариант с автозаменой делал.

PS Пользуюсь не уникодной последней версией инно.
Может в уникодной иначе сделано, не знаю.


 
Дмитрий Тимохов   (2010-09-19 15:23) [12]

>>>Кто б сомневался ©   (13.09.10 18:33)  

Чем дело то кончилось?
Интересует - может ты нашел какой-то некорявый способ изменять манифест у готового файла инсталляции, кто того, про который говорил выше я (ну и ты)?



Страницы: 1 вся ветка

Текущий архив: 2010.12.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1284562752
Unknown_user
2010-09-15 18:59
2010.12.26
Написание собственного COM сервера автоматизации


15-1284701719
Zenith
2010-09-17 09:35
2010.12.26
Библиотека для быстрых операций с массивами


2-1285973896
Ghost del vonte
2010-10-02 02:58
2010.12.26
Графика


15-1284560635
csc
2010-09-15 18:23
2010.12.26
как защитить свою программу от взлома?


15-1284668967
Юрий
2010-09-17 00:29
2010.12.26
С днем рождения ! 17 сентября 2010 пятница