Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.249.77] |
|
Сообщ.
#1
,
|
|
|
Необходимо скрыть ярлык в Установке/удалении программ. Нашел, что можно это сделать так
<RegistryKey Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\{fcd580c2-b5f1-4a44-b6da-77f38813bfdd}.sdb" > <RegistryValue Name="SystemComponent" Type="integer" Value="1" KeyPath="yes" /> </RegistryKey> Но RegistryValue не создается(( Подозреваю, что проблема в правах. Как это можно обойти? |
Сообщ.
#2
,
|
|
|
Не совсем понятно, о каком ярлыке идет речь? О ARPSYSTEMCOMPONENT property?
|
Сообщ.
#3
,
|
|
|
да, видимо это - оно.
|
Сообщ.
#4
,
|
|
|
сорри если туплю, но ARPSYSTEMCOMPONENT property - это решение проблемы?
|
Сообщ.
#5
,
|
|
|
Ты скажи, в чем проблема
Если ты не хочешь, чтобы твоя программа показывалась в Add/Remove Programs (ARP), то да ARPSYSTEMCOMPONENT - решение проблемы. Если что-то другое, то опиши проблему |
Сообщ.
#6
,
|
|
|
Я правлю инсталл, в котором есть такой вот кастом экшн
<CustomAction Id="InstallSDB" Directory="INSTALLDIR" ExeCommand="sdbinst -q MyDB.sdb" Return='ignore' Execute='commit'/> После установки появляется сама инсталлируемая программа в ARP и ещё одна запись там же для MyDB. Она запускает следующее %windir%\system32\sdbinst.exe -u "C:\Windows\AppPatch\Custom\{fcd580c2-b5f1-4a44-b6da-77f38813bfdd}.sdb" Так вот эту запись мне желательно сделать системной, чтобы скрыть от нежелательного вмешательства |
Сообщ.
#7
,
|
|
|
Цитата 0.0 @ Так вот эту запись мне желательно сделать системной, чтобы скрыть от нежелательного вмешательства Ну удали просто запись из реестра и дело в шляпе Если надо удалять при деинсталляции, то придется немного усложнить, но тоже ничего сверхсложного. про sbd ничего не могу рассказать, т.к. не сталкивался |
Сообщ.
#8
,
|
|
|
Я попробовал удалить весь ключ через
<Component Id='RegistryHKLM' DiskId='1' Guid='3339405D-3E8A-4C29-A7E7-AD23A59388A6' KeyPath='yes'> <RemoveRegistryKey Id='Remove.sdb' Action="removeOnInstall" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{fcd580c2-b5f1-4a44-b6da-77f38813bfdd}.sdb"/> </Component> Но removeOnInstall не работает, видимо он срабатывает раньше, чем кастом экшн, устанавливающий sdb. Потому что если использовать removeOnUninstall то после удаления оно сносит ключ нормально. Может есть какой-то ивент, к какому можно привязать кастом экшн, который ставит sdb, чтобы установка происходила ДО попытки удалить ключ с реестра? |
Сообщ.
#9
,
|
|
|
ну можно конечно перекрутить всю стандартную последовательность экшенов... но это наверное не очень хорошо.
сделай тогда еще один кастом экшен, который будет удалять этот ключ. |
Сообщ.
#10
,
|
|
|
Цитата Fester @ сделай тогда еще один кастом экшен, который будет удалять этот ключ а как это делается с помощью кастом экшена? Имею в виду удаление ключа... |
Сообщ.
#11
,
|
|
|
пишешь код на С++, JS или VB и говоришь инстраллятору исполнить этот код.
|