PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 [93] 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

yyv
01-11-2011, 14:37
подскажите как & вставить в лейбл?
в место него просто пробел вставляется
$\& - не помогает...
другие сочетания с '/' '\' также не помогли (

kotkovets
01-11-2011, 16:24
2 раза написать не пробовали: test&&

MKN
01-11-2011, 16:28
А что за версия NSIS 2.46.3 ? Не официальная какая то ?
Наткнулся здесь : http://dl.dropbox.com/u/40510768/NSI...2011-10-25.exe

kotkovets
01-11-2011, 16:49
А что за версия NSIS 2.46.3 ? Не официальная какая то ? »
Фиксы, слышал, что хотят перевести проект исходников на VS2010 - очень здорово было бы!

yyv
01-11-2011, 17:37
2 раза написать не пробовали: test&& »
:pray:
не знал... :)

vahe-91
07-11-2011, 18:49
нужно, чтобы вместо "Извлечение: имя файла" на странице MUI_PAGE_INSTFILES был другой текст
в самом начале секции пишу

Section "Gago"
SetDetailsPrint textonly
DetailPrint "Установка..."
.......................

но все равно отображается "Извлечение: имя файла". Что не так делаю ? :help:

kotkovets
07-11-2011, 21:11
но все равно отображается "Извлечение: имя файла". Что не так делаю ? »
#845 (http://forum.oszone.net/post-1515790-845.html)

vahe-91
07-11-2011, 21:41
kotkovets, спасибо :)
В справочнике нашел, что-то подобное, в Примеры кодов - Интерфейс модерн - Ресурсы интерфейса. Там изменен этот текст на "Установка приложения...", но немного по-другому.

kotkovets
07-11-2011, 21:51
В справочнике нашел, что-то подобное, в Примеры кодов - Интерфейс модерн - Ресурсы интерфейса. Там изменен этот текст на "Установка приложения...", но немного по-другому. »
Я делал так и текст один был, потому, что не было контента установки - пример пустышка, поэтому надпись не менялась,
как только появляются команды - установщик вносит надписи стандартных команд быстро, отсюда "мелтешь" контента.

dix75
11-11-2011, 18:13
Что-то я не пойму почему файл так не работает
File /oname= ${PATH_OUTPUT}\${PRODUCT_OUTPUT_FILE_NAME} ${pkgdir}\${PRODUCT_FILE_NAME}

Все заработало

dix75
11-11-2011, 19:30
Почему
Exec "firefox.exe"
не работает?

kotkovets
12-11-2011, 01:08
не работает? »
Потому, что при таком раскладе путь исполнительному файлу ищется в системных путях:
в папке Windows и Windows\system32
Указывайте явный путь к "firefox.exe"

wolkow70
12-11-2011, 14:55
Уважаемый товарищ kotkovets,
Некоторое время назад, преимущественно Вашими усилиями, мы работали над функцией:

Function un.INSTFILES_LEAVE

В общем виде выглядит так:
UninstPage custom un.INSTFILES_LEAVE

Section Uninstall
UnRegDLL "$INSTDIR\DefragglerShell.dll"
;
;-бла-бла-бла
RMDir /r /REBOOTOK "$INSTDIR\"
SetAutoClose true
SectionEnd

Section "Un.Перезагрузка Проводника Windows" RestartExplorer
SectionIn 1
ExecWait 'taskkill /F /IM explorer.exe' $0
DetailPrint "taskkill exit: [ $0 ]"
Sleep 500
StrCmp $0 0 0 +2
Exec "explorer.exe"
Delete "$INSTDIR\DefragglerShell.dll"
RMDir /r "$INSTDIR\"
SectionEnd
;
Function un.INSTFILES_LEAVE
${If} ${FileExists} "$INSTDIR\DefragglerShell.dll"
SetRebootFlag true
${Else}
SetRebootFlag false
${EndIf}
FunctionEnd

Выявилось следующее:
Если удалить программу с использованием данной функции, и затем переустановить снова, то после перезагрузки компьютера файл DefragglerShell.dll (или аналогичный) все равно удаляется физически, так как оказывается прописанным в ключе реестра
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager "PendingFileRenameOperations"

Приводит это к последующей неработоспособности программы.
В данном случае мне не понятно, почему файл прописывается на удаление, если мы сняли флаг перезагрузки?

kotkovets
12-11-2011, 15:28
wolkow70,
RMDir /r /REBOOTOK "$INSTDIR"
не о чем говорит?

wolkow70
12-11-2011, 15:30
не о чем говорит? »
RMDir /r /REBOOTOK "$INSTDIR" »
Говорит о том, что если есть флаг перезагрузки, то удаление выполняется с перезагрузкой, если нет флага, то удаляется без перезагрузки. Или я не прав?

kotkovets
12-11-2011, 15:58
wolkow70,
Говорит о том, что если файл по какой либо причине не удалится, то удалится при перезагрузке.

wolkow70
12-11-2011, 16:03
Говорит о том, что если файл по какой либо причине не удалится, то удалится при перезагрузке. »
То есть, последующая переустановка программы трактуется как "не удаление файла"
(даже, если при этом, при предварительной деинсталляции файл был удален через функцию)?

wolkow70
12-11-2011, 16:34
kotkovets,
Тут еще дело в том, что /REBOOTOK удалять не желательно, так как это относится к стандартной функции удаления, в то время как Function un.INSTFILES_LEAVE - эксперементальная функция. Придется лучше от нее отказаться.

Alexey_KF
12-11-2011, 23:09
Помогите пожалуйста!
есть файл реестра
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info]
"PackageFeatures"=dword:00000001

как мне добавить эту запись в реестр используя NSIS скрипт?

kotkovets
12-11-2011, 23:43
как мне добавить эту запись в реестр используя NSIS скрипт? »
WriteRegDWORD HKLM "SOFTWARE\ESET\ESET Security\CurrentVersion\Info" "PackageFeatures" 0x1
Читайте Справочник по NSIS (http://forum.oszone.net/thread-168287.html)




© OSzone.net 2001-2012