|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Идиот Сообщения: 1125
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 20:28, 04-08-2009 | #171 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Доброго времени суток всем! Сделал инсталлятор на NSIS. Ставит несколько программ и создает/меняет некоторые ключи реестра.
Под ХР работает, а под вистой и семеркой не хочет ни в какую писать ключи реестра в раздел HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\ (контекстное меню Мой компьютера). Туда удобно ставить ссылки на некоторые программы, чтоб не мешались и одновременно были под рукой в нужный момент. Пробовал RequestExecutionLevel admin и highest, одновременно с указанием SetShellVarContext all в секциях установщика и анинсталла. Не помогает, независимо от способа запуска - ни просто так, ни от имени админа. Все файлы и остальные ключи записываются нормально, только в указанный раздел ничего не добавляется. Зато, если создать reg-файл с этими ключами и запускать его вручную после установки, то все добавляется. Но такой способ мне совсем не нравится. С таким же успехом можно обойтись и без установщика, копируя файлы вручную :-\ Помогите советом, как заставить мой инсталлятор правильно работать? |
Отправлено: 02:35, 21-08-2009 | #172 |
Идиот Сообщения: 1125
|
Профиль | Сайт | Отправить PM | Цитировать nRoof, давай код скрипта поглядим. Хотя бы ту часть которая пишет в реестр.
|
------- Отправлено: 08:29, 21-08-2009 | #173 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Разобрался сегодня сам. Проблема была совсем не в правах доступа.
Моя ошибка была в том, что я не учел разрядность висты и 7, они у меня 64-битные. А у Windows x64 систем реестр делится на 64 и 32-разрядные разделы. Мониторинг процесса установки моего инсталлера ProcessMonitor'ом показал, что ключи все-таки добавляются, но не в HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\, а в HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell. Стало очевидно, что инсталлер обращается к 32-разрядным разделам вместо 64-разрядных. Поиск в справке NSIS привел к инструкции SetRegView 32|64|lastused, которая и определяет, к какой разрядности разделам обращаться установщику. Добавление в скрипт SetRegView 64 решило проблему. Теперь под XP-32 и под Vista-64/7-64 собранный мной установщик работает правильно . Буду рад если этот пост кому-то поможет. |
Отправлено: 16:35, 21-08-2009 | #174 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Подскажите, как nsis'ом определить расположение ранее установленной программы.
Занести пусть в переменную и использовать ее при конфигурировании. Например: Определяем куда установлен µTorrent Определили что он установлен в C:\Program Files\uTorrent\ занесли это в переменную $instor и потом возможно такое? |
Отправлено: 20:43, 24-08-2009 | #175 |
Сообщения: 3652
|
Профиль | Сайт | Отправить PM | Цитировать Impeck, из справки NSIS:
|
------- Отправлено: 23:18, 24-08-2009 | #176 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:13, 25-08-2009 | #177 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать тогда уж так
The DeleteRegKey problem is probably a windows bug and not nsis, either way, using SetRegView 64 on 32 bit systems is not supported To detect x64, include x64.nsh ${If} ${RunningX64} MessageBox MB_OK "running on x64" ${EndIf} edit: gah too slow, kichik beat me to it |
Отправлено: 14:07, 25-08-2009 | #178 |
Идиот Сообщения: 1125
|
Профиль | Сайт | Отправить PM | Цитировать Ребят, вы чёт загнались тут конкретно!
Короче, умейте читать справку! Uses SearchPath() to search the system paths for the file. СИСТЕМНЫЕ ПУТИ!!! системные пути это %windir%, %path% etc. Я вообще не понял суть вопроса с поиском. Если функция нужна - используйте это: http://nsis.sourceforge.net/Search_For_a_File ИЛИ ЭТО http://nsis.sourceforge.net/FindIt:_...le_/_directory Если надо ПРОСТО УЗНАТЬ, установлен юторрент установлен или нет, то прочитайте ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uTorrent, ключ "UninstallString"="\"C:\\Program Files\\uTorrent\\uTorrent.exe\" /UNINSTALL" или этот "InstallLocation"="C:\\Program Files\\uTorrent" (я рекомендую читать первый) и проверьте наличия файла P.S. А ещё можно в аппдата поглядеть, есть ли профиль юторрента. Если есть - значит он он есть(ну или был когда то 100%) |
------- Отправлено: 14:59, 25-08-2009 | #179 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать ну если это ко мне адресовано то я ответил на пост 173 nRoof
|
Отправлено: 16:33, 25-08-2009 | #180 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|