|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Сразу возникли вопросы: Если я инициализирую папку программы: Var SysDrive Function .onInit ${If} ${RunningX64} StrCpy $INSTDIR "$SysDrive\$PROGRAMFILES64\CCleaner" ${Else} StrCpy $INSTDIR "$SysDrive\$PROGRAMFILES\CCleaner" ${EndIf} StrCpy $SysDrive $WINDIR 2 FunctionEnd то строка InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" не нужна или она просто не будет выполняться в этом случае? Еще у меня после снятия снимков реестра получилается такая конструкция : ${If} ${RunningX64} WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" ; WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" ; WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" ${Else} WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\ccleaner.exe$\" /%1" ${EndIf} |
|
------- Отправлено: 10:58, 24-12-2011 | #2101 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
А в реестре так ${If} ${RunningX64} SetShellVarContext all SetRegView 64 ;;;;;;;;;;ключи для х64 ${Else} SetShellVarContext all SetRegView 32 ;;;;;;;;;ключи для х86 ${EndIf} тоесть тебе надо добавить SetRegView 64 или SetRegView 32 |
|
Последний раз редактировалось diakov, 24-12-2011 в 11:24. Отправлено: 11:19, 24-12-2011 | #2102 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата diakov:
Может это на практике и будет так интерпретировано, но все таки это не "комильфо". Если соблюдать все тонкости, то в данном случае $INSTDIR отличается в зависимости от разрядности, тем более эта переменная используется по ходу всего скрипта, поэтому во избежание каких-либо накладок, лучше объявить ее по разному. Еще я заметил, что в X64 распаковываются оба экзешника, и ccleaner.exe берет на себя часть функций, что следует из комманды cclaunch\shell\open\command" "" "$\"$INSTDIR\ccleaner.exe$\" /%1", в то время, как основным исполняемым файлом является CCleaner64.exe. Я посмотрел твой скрипт, не могу понять, что это за ключ HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Tracing\ccsetup314_RASAPI32"? Я у себя такого ключа не нашел. Цитата diakov:
|
||
------- Последний раз редактировалось wolkow70, 24-12-2011 в 12:12. Отправлено: 12:04, 24-12-2011 | #2103 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать то по моему ключ по приоритету выполнения...дело в том что я ставил клинер на х86 и сканировал ключи, а потом ставил на х64 и сканировал ключи и соотвественно прописывал их в разные секции...
|
Отправлено: 12:11, 24-12-2011 | #2104 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата diakov:
На X86 только: WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\ccleaner.exe$\" /%1" На X64 все это: WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" ; WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" ; WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch" "" "URL: CCleaner Protocol" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch" "URL Protocol" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell" "" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open\command" "" "$\"$INSTDIR\CCleaner.exe$\" /%1" |
|
------- Отправлено: 12:20, 24-12-2011 | #2105 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать А чем сравнивал то?
|
Отправлено: 12:34, 24-12-2011 | #2106 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Я использую программы RegOrganizer и Registry WorkShop
В RegOrganizer делаю снимок изменений, а в Registry WorkShop просматриваю ключи и осуществляю экспорт их в рег-файлы, которые дальше конвертирую в Reg2NSIS. Вот сами ключи: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cclaunch] @="URL: CCleaner Protocol" "URL Protocol"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cclaunch\shell] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cclaunch\shell\open] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\cclaunch\shell\open\command] @="\"F:\\Program Files\\CCleaner\\ccleaner.exe\" /%1" =========================================================== [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\cclaunch] @="URL: CCleaner Protocol" "URL Protocol"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\cclaunch\shell] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\cclaunch\shell\open\command] @="\"F:\\Program Files\\CCleaner\\ccleaner.exe\" /%1" =========================================================== [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\cclaunch] @="URL: CCleaner Protocol" "URL Protocol"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\cclaunch\shell] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open] @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\cclaunch\shell\open\command] @="\"F:\\Program Files\\CCleaner\\ccleaner.exe\" /%1" |
------- Последний раз редактировалось wolkow70, 24-12-2011 в 12:56. Отправлено: 12:50, 24-12-2011 | #2107 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать А я использовал Regshot, мож потому...
kotkovets подскажи как сделать что бы иконка проги отображалась в панели управление программы? где то видел статью но теперь не могу найти |
Отправлено: 13:16, 24-12-2011 | #2108 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
$INSTDIR = С:\C:\Program Files\CCleaner InstallDir помещает свое значение в переменную $INSTDIR Цитата wolkow70:
В комплекте поставки Windows XP 64-bit Edition имеются две версии Редактора реестра: одна, запускаемая по умолчанию, демонстрирует только 64-битный раздел реестра Windows XP, другая предназначена для редактирования 32-разрядного раздела. Естественно 64-битную программу система "заставляет" использовать по умолчанию 64-разрядный реестр и 32-битные программы использовать по умолчанию 32-разрядный реестр. установщик NSIS в х64 - это 32-разрядный процесс, а значит по умолчанию вид (SetRegView 32) Использование (SetRegView 64) позволяет инсталлятору NSIS использовать доступ к 64-разрядному виду реестра. Цитата diakov:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel |
|||
------- Последний раз редактировалось kotkovets, 24-12-2011 в 14:12. Отправлено: 14:02, 24-12-2011 | #2109 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets,
Цитата kotkovets:
Чето не получается мож что не так вылазить две страницы финиша |
|
Отправлено: 14:20, 24-12-2011 | #2110 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|