...удалено...
» NSIS (Nullsoft Scriptable Install System)
Victor_VG
Даров! Я тут отсутсвовал, кое-чаво успел пропустить. На статьи, я так понимаю, у тя времени не нашлось? Если нет, то фиг с ним. Я тут в 2.44 баг критичный нашел. Но чтобы его описать поста мало. Одно скажу, что со стеками поаккуратнее.
Даров! Я тут отсутсвовал, кое-чаво успел пропустить. На статьи, я так понимаю, у тя времени не нашлось? Если нет, то фиг с ним. Я тут в 2.44 баг критичный нашел. Но чтобы его описать поста мало. Одно скажу, что со стеками поаккуратнее.
ComradG
Угу. Кручусь как заведённый. Насчёт стеков понял.
Угу. Кручусь как заведённый. Насчёт стеков понял.
Народ подскажите плз.
У меня от небольшой проги есть файлы и файлы реестра. Знаю что с помощью NSIS можно как то упаковать это всё в один EXE файл, так чтобы при его запуске файлы распаковывались в нужную директорию запускался файл реестра а при выходе из программы снова удалялись. Спасибо
У меня от небольшой проги есть файлы и файлы реестра. Знаю что с помощью NSIS можно как то упаковать это всё в один EXE файл, так чтобы при его запуске файлы распаковывались в нужную директорию запускался файл реестра а при выходе из программы снова удалялись. Спасибо
MIHMIH007
Можно, программу надо написать. Но нет данных, никто и не напишет.
Можно, программу надо написать. Но нет данных, никто и не напишет.
Цитата:
Можно, программу надо написать. Но нет данных, никто и не напишет.
Каким образом тогда создают портативные приложения через NSIS ??? или в этом топике никто этим не занимается?
MIHMIH007
Пишут программы. Но для этого надо знать что написать. Телепатов здесь увы, нет. А так выходит "Хочу то, сам не знаю что. Дайте мне готовое.". Не смешно, потому и ответ такой. Общий.
Пишут программы. Но для этого надо знать что написать. Телепатов здесь увы, нет. А так выходит "Хочу то, сам не знаю что. Дайте мне готовое.". Не смешно, потому и ответ такой. Общий.
MIHMIH007
на portableapps.com можно подсмотреть как это делается.
в принципе ничего сложного в этом нет, если не требуется очень универсального решения
на portableapps.com можно подсмотреть как это делается.
в принципе ничего сложного в этом нет, если не требуется очень универсального решения
Подскажите пожалуйста как сделать в инсталляторе проверку на наличие файла в выбранной пользователем папке для установки? При этом, сама проверка должна осуществляться только после того, как будет нажата кнопка "Установить". Если файл присутствует в этой папке, то установка спокойно продолжится, а если файла нет, то должно появится сообщение о том, что в этой папке нет нужного файла, выберете другую папку...
Суть да дело в том, что у меня дополнение для игры и таким образом должна производиться проверка на наличие игры в выбранной пользователем папке...
Суть да дело в том, что у меня дополнение для игры и таким образом должна производиться проверка на наличие игры в выбранной пользователем папке...
Draik
Почитай справку, посмотри примеры, ты найдешь всё сам быстрее, чем ждать пока кто-то тебе ответит.
Почитай справку, посмотри примеры, ты найдешь всё сам быстрее, чем ждать пока кто-то тебе ответит.
Garrett. Я не из леса И справку читал.
Но не получается сделать именно так, как я описал...
У меня почему-то проверка осуществляется уже после нажатия кнопки "Обзор" и уведомляет об отсутствии файла. Совсем не в кассу это)
Вот и взываю о помощи у более продвинутых пользователей
Но не получается сделать именно так, как я описал...
У меня почему-то проверка осуществляется уже после нажатия кнопки "Обзор" и уведомляет об отсутствии файла. Совсем не в кассу это)
Вот и взываю о помощи у более продвинутых пользователей
Draik
Это генерируется судя по ввиду диалога в MUI. Язык интерфейса какой?. Наверняка там что-то не дописал. Короче, выложи свой код, можно в личку. Так подсказать с ходу сложно, но как я понимаю у тебя используется один язык установки - английский, все его сообщения при сборке программы не компилируются в ресурсную библиотеку содержащую скрипт, а берутся из кода программы установщика - они туда "вшиты" на уровне исходников. Используй как я сказал выше MUI, как минимум с двумя языками, и тогда он сам подключит необходимые макросы и библиотеки языковой поддержки. Иначе тебе придётся весь это код писать вручную, а это значит возможность сделать лишние ошибки и возня с отладкой. А оно тебе в таком виде надо?
Проверка наличия файла делается элементарно - используем проверку IfFileExists "$INSTDIR\myfile" lbl_if_exists lbl_if_not_exists
Далее если файл существует переходим на ветку алгоритма lbl_if_exists, иначе обрабатываем ситуацию "не существует" по метке lbl_if_not_exists, например выдаём диагностическое сообщение конструкцией вида (при условии использования MUI):
Код:
Section /o -check
IfFileExists "$INSTDIR\myfile" lbl_exists
StrCmp $LANGUAGE 1049 +2
MessageBox MB_ICONSTOP|MB_OK "Required file ... not found, installation is aborted." IDOK +2
MessageBox MB_ICONSTOP|MB_OK "Необходимый для работы программы файл .... не найден, установка прервана." IDOK +1
Quit
lbl_exists:
SectionEnd
Это генерируется судя по ввиду диалога в MUI. Язык интерфейса какой?. Наверняка там что-то не дописал. Короче, выложи свой код, можно в личку. Так подсказать с ходу сложно, но как я понимаю у тебя используется один язык установки - английский, все его сообщения при сборке программы не компилируются в ресурсную библиотеку содержащую скрипт, а берутся из кода программы установщика - они туда "вшиты" на уровне исходников. Используй как я сказал выше MUI, как минимум с двумя языками, и тогда он сам подключит необходимые макросы и библиотеки языковой поддержки. Иначе тебе придётся весь это код писать вручную, а это значит возможность сделать лишние ошибки и возня с отладкой. А оно тебе в таком виде надо?
Проверка наличия файла делается элементарно - используем проверку IfFileExists "$INSTDIR\myfile" lbl_if_exists lbl_if_not_exists
Далее если файл существует переходим на ветку алгоритма lbl_if_exists, иначе обрабатываем ситуацию "не существует" по метке lbl_if_not_exists, например выдаём диагностическое сообщение конструкцией вида (при условии использования MUI):
Код:
Section /o -check
IfFileExists "$INSTDIR\myfile" lbl_exists
StrCmp $LANGUAGE 1049 +2
MessageBox MB_ICONSTOP|MB_OK "Required file ... not found, installation is aborted." IDOK +2
MessageBox MB_ICONSTOP|MB_OK "Необходимый для работы программы файл .... не найден, установка прервана." IDOK +1
Quit
lbl_exists:
SectionEnd
Victor_VG.
Спасибо за эдакий ликбез)
Вон оно как всё непросто, оказывается.
Тут, что называется, без пол-литра не разберешься.
Язык у меня русский прописан в скрипте. Поэтому всё по-русски. Всё таки для соотечественников патч делаю. А они ни по-английски, ни по-французски не ля ля бужур совсем))
вот так вобщем:
!insertmacro MUI_LANGUAGE "Russian"
Насчёт проверки файла:
Я вот только до такого додумался...
Function .onVerifyInstDir
IfFileExists $INSTDIR\game.exe
MessageBox MB_RETRYCANCEL "В выбранном Вами каталоге отсутствуют компоненты игры. Выберете другой каталог и нажмите <Повтор>." IDRETRY -1 IDCANCEL 0
FunctionEnd
Это не совсем то что нужно, но всё равно ж не работает))
Вот эту хрень прописываю в начале скрипта, в итоге када тока нажимаю кнопку "Обзор", чтоб выбрать папку, то не успеваю я ее выбрать, как мне уже говорится что файло не найдено.
Мне же нужно так. Подробно объясняю:
1. Юзверь такой запускает инсталлятор.
2. Доходит до выбора папки установки.
3. Выбирает папку, нажимает кнопку "Установить"
4. И вот уже после этого, если файл найден, то установка начнётся как ни в чём не бывало без всяких всплывающих сообщений. А если файл не найден, то вылезает уведомление о том, что игра не найдена в выбранной папке. А нажать можно только кнопку ОК и выбрать другую папку. Никакого аборта, то есть прерывания работы инсталлятора быть не должно. Юзверь спокойно должен нажать ОК и выбрать другую папку и усё.
Никаких косяков быть тоже не должно) Меня просто растерзают за каждый глюк)
Либо я делаю эту фичу чётко и без косяков, либо вообще от неё отказываюсь. а отказываца не хоца, т.к штука-то полезная.
Вобщем, Victor_VG, давайте еще чучуть с Вами конструктивно поразмыслим. По крайней мере у Вас это прекрасно получается
Спасибо за эдакий ликбез)
Вон оно как всё непросто, оказывается.
Тут, что называется, без пол-литра не разберешься.
Язык у меня русский прописан в скрипте. Поэтому всё по-русски. Всё таки для соотечественников патч делаю. А они ни по-английски, ни по-французски не ля ля бужур совсем))
вот так вобщем:
!insertmacro MUI_LANGUAGE "Russian"
Насчёт проверки файла:
Я вот только до такого додумался...
Function .onVerifyInstDir
IfFileExists $INSTDIR\game.exe
MessageBox MB_RETRYCANCEL "В выбранном Вами каталоге отсутствуют компоненты игры. Выберете другой каталог и нажмите <Повтор>." IDRETRY -1 IDCANCEL 0
FunctionEnd
Это не совсем то что нужно, но всё равно ж не работает))
Вот эту хрень прописываю в начале скрипта, в итоге када тока нажимаю кнопку "Обзор", чтоб выбрать папку, то не успеваю я ее выбрать, как мне уже говорится что файло не найдено.
Мне же нужно так. Подробно объясняю:
1. Юзверь такой запускает инсталлятор.
2. Доходит до выбора папки установки.
3. Выбирает папку, нажимает кнопку "Установить"
4. И вот уже после этого, если файл найден, то установка начнётся как ни в чём не бывало без всяких всплывающих сообщений. А если файл не найден, то вылезает уведомление о том, что игра не найдена в выбранной папке. А нажать можно только кнопку ОК и выбрать другую папку. Никакого аборта, то есть прерывания работы инсталлятора быть не должно. Юзверь спокойно должен нажать ОК и выбрать другую папку и усё.
Никаких косяков быть тоже не должно) Меня просто растерзают за каждый глюк)
Либо я делаю эту фичу чётко и без косяков, либо вообще от неё отказываюсь. а отказываца не хоца, т.к штука-то полезная.
Вобщем, Victor_VG, давайте еще чучуть с Вами конструктивно поразмыслим. По крайней мере у Вас это прекрасно получается
Draik
Зайди ко мне на сайт (ссылка в подписи) там есть полный пакет nsis-244.rar, но хостер требует регистрации. В Обновлении в разделе Examples/NSIS есть его собственный скрипт. Так вот, тебе надо не файлы искать, а считывать путь установки из раздела [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall] или иного места в Реестре где он указан в явном виде и через инструкцию InstallDirRegKey определять путь для установки. А файлы искать уже как признак допустимости, иначе придётся сделать много дополнительных проверок. Иное дело, что разбор строки деинсталляции может оказаться громоздким. Это возможно.
Зайди ко мне на сайт (ссылка в подписи) там есть полный пакет nsis-244.rar, но хостер требует регистрации. В Обновлении в разделе Examples/NSIS есть его собственный скрипт. Так вот, тебе надо не файлы искать, а считывать путь установки из раздела [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall] или иного места в Реестре где он указан в явном виде и через инструкцию InstallDirRegKey определять путь для установки. А файлы искать уже как признак допустимости, иначе придётся сделать много дополнительных проверок. Иное дело, что разбор строки деинсталляции может оказаться громоздким. Это возможно.
Не знаю правильно ли я понял, но реестр мне как таковой не нужен.
Игра, на которую патч устанавливается существует в разных версиях - лицензионная, пиратская, причем от разных пиратов. И некоторые версии игры данные о себе в реестр не прописывают. А еще некоторые умники игру просто перекачивают с винта у товарища. Тут тоже ессно никаких данных в реестре не будет. Тем не менее, в скрипте я всё таки прописываю установку по данным реестра, в таком виде (пример):
InstallDirRegKey HKLM "Software\my games\lalala" "Install Dir"
Так вот, если у пользователя игра найдена на компе, то в поле выбора папки уже сразу отобразится путь к папке с игрой и останеца только нажать "Установить", а если по реестру игра не найдётся, то поле выбора папки будет пустым и юзверь вручную укажет путь к игре. То есть путь из реестра я использую вот таким образом.
Иными словами проверка на наличие файлов всё таки нужна. И если юзер укажет не правильную папку, то надо чтоб ему об этом вывелось сообщение.
А деинсталляция не нужна в принципе. И её я даже в скрипте не прописываю. В моём случае смысла в ней нет. Так как патч модифицирует оригинальные файлы игры и удалить их можно только, если снести саму игру. Для этого пользователь воспользуется обычным родным деинсталлятором самой игры.
Игра, на которую патч устанавливается существует в разных версиях - лицензионная, пиратская, причем от разных пиратов. И некоторые версии игры данные о себе в реестр не прописывают. А еще некоторые умники игру просто перекачивают с винта у товарища. Тут тоже ессно никаких данных в реестре не будет. Тем не менее, в скрипте я всё таки прописываю установку по данным реестра, в таком виде (пример):
InstallDirRegKey HKLM "Software\my games\lalala" "Install Dir"
Так вот, если у пользователя игра найдена на компе, то в поле выбора папки уже сразу отобразится путь к папке с игрой и останеца только нажать "Установить", а если по реестру игра не найдётся, то поле выбора папки будет пустым и юзверь вручную укажет путь к игре. То есть путь из реестра я использую вот таким образом.
Иными словами проверка на наличие файлов всё таки нужна. И если юзер укажет не правильную папку, то надо чтоб ему об этом вывелось сообщение.
А деинсталляция не нужна в принципе. И её я даже в скрипте не прописываю. В моём случае смысла в ней нет. Так как патч модифицирует оригинальные файлы игры и удалить их можно только, если снести саму игру. Для этого пользователь воспользуется обычным родным деинсталлятором самой игры.
Draik
И я в обновлениях деинсталлятор обычно не пишу. Обычно он там по логике вещей не нужен. Тогда можно использовать плугин locate - он есть на офсайте и например у меня в пакете. С его помощью ищем характерные именно для данной программы файлы. Но и в Реестре её следы будут, например в том же [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32] и в других MRU кэшах. Тут надо искать где система эти записи хранит, а потом думать как их оттуда прочитать, и использовать данные пути. Иначе искать замучаешься, особенно коли диски ёмкие.
И я в обновлениях деинсталлятор обычно не пишу. Обычно он там по логике вещей не нужен. Тогда можно использовать плугин locate - он есть на офсайте и например у меня в пакете. С его помощью ищем характерные именно для данной программы файлы. Но и в Реестре её следы будут, например в том же [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32] и в других MRU кэшах. Тут надо искать где система эти записи хранит, а потом думать как их оттуда прочитать, и использовать данные пути. Иначе искать замучаешься, особенно коли диски ёмкие.
Victor_VG - подскажи пожайлуста, чем можно распаковать скрипт инсталлятора NSIS. С инно работал, а с сабжем - никогда практически. Дабы вытащить именно скрипт, а не сами файлы установки. (файлы известны)? Есть такая возможность? Пробовал Universal Extractor 1.6 - распаковывает не всё, и вообще непонятно что....NSIS Unpacker - х.з как подключить к тоталу да и сомневаюсь я насчёт его что-то. Подскажи пожайлуста. Кстати, куда ссылка из шапки на русик пропала? Раньше вроде замечал её там....Заранее спасибо.
Alex Zaguzin
Используй 7zfm.exe версии 4.65 для распаковки. А вот что касается скрипта, то декомпиллера на него пока нет, во всяком случае я его не знаю. А раз так, то остаётся только визуальный анализ, благо обычно скрипт не зашифрован. А шапку я поправлю.
Используй 7zfm.exe версии 4.65 для распаковки. А вот что касается скрипта, то декомпиллера на него пока нет, во всяком случае я его не знаю. А раз так, то остаётся только визуальный анализ, благо обычно скрипт не зашифрован. А шапку я поправлю.
Victor_VG - 7z я файлы и распаковывал оттуда. Давно его юзаю....Но вот как происходит проверка файлов на наличие и версии их, а также версии ОС и путей. Эх, блин, буду думать как сделать....
Цитата:
Цитата:
А раз так, то остаётся только визуальный анализ, благо обычно скрипт не зашифрован- не понял, как так? Или я туплю с вечера опять
Victor_VG - спасибо за помощь. Буду разбираться с утра (уже пол второго ночи....). Вроде всё просто на первый взгляд.
Я думаю, ты понял, о чём речь. Нужно распаковать инсталлятор обновления проги и собрать его-же, но встроив кряк и ещё кое-что интересное....Ладно, что-нибудь придумаю. Ещё раз сенкс.
Я думаю, ты понял, о чём речь. Нужно распаковать инсталлятор обновления проги и собрать его-же, но встроив кряк и ещё кое-что интересное....Ладно, что-нибудь придумаю. Ещё раз сенкс.
Подскажите вот что(желательно с примером):
Каким образом проверить ОС при инсталяции
(если ниже ХР то инсталировать файл gdiplus.dll , если выше то не инсталировать gdiplus.dll)
Голову уже сломал (версию проверял GetVersion - но как ее правильно применить так и не дошло-в этом случае)
ISS это
Source: gdiplus.dll; DestDir: {app}; MinVersion: 4.0.950,0; OnlyBelowVersion: 4.9.3000,0
Каким образом проверить ОС при инсталяции
(если ниже ХР то инсталировать файл gdiplus.dll , если выше то не инсталировать gdiplus.dll)
Голову уже сломал (версию проверял GetVersion - но как ее правильно применить так и не дошло-в этом случае)
ISS это
Source: gdiplus.dll; DestDir: {app}; MinVersion: 4.0.950,0; OnlyBelowVersion: 4.9.3000,0
Подскажите скрипт или плагин для передачи домена, логина и пароля с целью подключения/отключения сетевой папки, из которой нужно запустить программу (т.е. из скрипта временно подключиться (а затем отключиться) к папке другого домена и пользователь этой папки не зарегистрирован на текущем компьютере).
В настоящее время использую консольную команду "NET USE <параметры>" через ExecWait , но, во-первых, при подключении/отключении выскакивает консольное окно (что некрасиво), в во-вторых это в отдельных случаях не работает в доменах.
В настоящее время использую консольную команду "NET USE <параметры>" через ExecWait , но, во-первых, при подключении/отключении выскакивает консольное окно (что некрасиво), в во-вторых это в отдельных случаях не работает в доменах.
Готового скрипта для NSIS у меня нет, но через System:Call можно сделать с использованием вот ф-ции WNetAddConnection2:
[more=скрипт]
Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" ( _
lpNetResource As NETRESOURCE, _
Byval lpPassword As String, _
Byval lpUserName As String, _
Byval dwFlags As Long) As Long
Const ERROR_ACCESS_DENIED = 5
Const ERROR_ALREADY_ASSIGNED = 85
Const ERROR_BAD_DEV_TYPE = 66
Const ERROR_BAD_DEVICE = 1200
Const ERROR_BAD_NET_NAME = 67
Const ERROR_BAD_PROFILE = 1206
Const ERROR_BAD_PROVIDER = 1204
Const ERROR_BUSY = 170
Const ERROR_CANCELLED = 1223
Const ERROR_CANNOT_OPEN_PROFILE = 1205
Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202
Const ERROR_EXTENDED_ERROR = 1208
Const ERROR_INVALID_PASSWORD = 86
Const ERROR_NO_NET_OR_BAD_PATH = 1203
Const ERROR_NO_NETWORK = 1222
Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219
' sample usage
%REM
Sub Initialize
On Error Goto errh
On Error 76 Goto bad_path
Dim sess As New NotesSession
Dim doc As NotesDocument
Set doc = sess.DocumentContext
Dim res$
Dim pathName As String, fileName As String
pathName$ = doc.Folder(0)
Print "<br>"
If doc.User(0) <>"" Then
res = NetUse(pathName$, doc.User(0), doc.Pass(0))
If res<>"" Then
Error 1000," connecting to "+pathName$+"<br>"+res$
End If
End If
If Right(pathName, 1)= "\" Then pathName = pathName + doc.Mask(0) Else pathName = pathName + "\"+doc.Mask(0)
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <> ""
Print fileName$+"<br>"
fileName$ = Dir$()
Loop
Print "<hr>"
quit:
Exit Sub
bad_path:
Print "<br><br><font color=red><b>Folder '"+pathName$+"' doesn't exists.</b></font>"
Resume quit
errh:
Print "<br><br><font color=red><b>Error "+Cstr(Err)+": "+Error$+" in (WQS Dir)/Initialize at line "+Cstr(Erl)+"</b></font>"
Resume quit
End Sub
[/more]
[more=скрипт]
Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" ( _
lpNetResource As NETRESOURCE, _
Byval lpPassword As String, _
Byval lpUserName As String, _
Byval dwFlags As Long) As Long
Const ERROR_ACCESS_DENIED = 5
Const ERROR_ALREADY_ASSIGNED = 85
Const ERROR_BAD_DEV_TYPE = 66
Const ERROR_BAD_DEVICE = 1200
Const ERROR_BAD_NET_NAME = 67
Const ERROR_BAD_PROFILE = 1206
Const ERROR_BAD_PROVIDER = 1204
Const ERROR_BUSY = 170
Const ERROR_CANCELLED = 1223
Const ERROR_CANNOT_OPEN_PROFILE = 1205
Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202
Const ERROR_EXTENDED_ERROR = 1208
Const ERROR_INVALID_PASSWORD = 86
Const ERROR_NO_NET_OR_BAD_PATH = 1203
Const ERROR_NO_NETWORK = 1222
Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219
' sample usage
%REM
Sub Initialize
On Error Goto errh
On Error 76 Goto bad_path
Dim sess As New NotesSession
Dim doc As NotesDocument
Set doc = sess.DocumentContext
Dim res$
Dim pathName As String, fileName As String
pathName$ = doc.Folder(0)
Print "<br>"
If doc.User(0) <>"" Then
res = NetUse(pathName$, doc.User(0), doc.Pass(0))
If res<>"" Then
Error 1000," connecting to "+pathName$+"<br>"+res$
End If
End If
If Right(pathName, 1)= "\" Then pathName = pathName + doc.Mask(0) Else pathName = pathName + "\"+doc.Mask(0)
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <> ""
Print fileName$+"<br>"
fileName$ = Dir$()
Loop
Print "<hr>"
quit:
Exit Sub
bad_path:
Print "<br><br><font color=red><b>Folder '"+pathName$+"' doesn't exists.</b></font>"
Resume quit
errh:
Print "<br><br><font color=red><b>Error "+Cstr(Err)+": "+Error$+" in (WQS Dir)/Initialize at line "+Cstr(Erl)+"</b></font>"
Resume quit
End Sub
[/more]
Подскажите, пожалуйста, как решить вот какую задачу - нужно вырезать из очень большого файла очень большой кусок и сохранить его в отдельный файл. Размеры и исходного файла и вырезаемого куска порядка нескольких гигабайт. Файлы двоичные.
Как отловить нажатие кнопки в своей форме?
NSIS умеет выставлять права на папки? Ситуация:
под вистой в Program Files создается каталог и туда разворачивается некая сборка. В конце инсталляции появляется запрос с предложением запустить установленную программу. Если сказать "да", всё отлично отрабатывает, прога запускается и работает. До закрытия.
Оказывается, виста распознает нсису и при отработке инсталлятора автоматом присваивает ему уровень привилегий admin (соответственно если прогу запустить из-под инсталлятора, то права унаследуются на одну сессию). Дальнейшие попытки запустить программу не из инсталлятора приводят к появлению дебильного для висты запроса "непонятная прога.. чо делать бум? запускать?" А всё потому, что у юзера нет прав на полноценную работу с этим каталогом.
под вистой в Program Files создается каталог и туда разворачивается некая сборка. В конце инсталляции появляется запрос с предложением запустить установленную программу. Если сказать "да", всё отлично отрабатывает, прога запускается и работает. До закрытия.
Оказывается, виста распознает нсису и при отработке инсталлятора автоматом присваивает ему уровень привилегий admin (соответственно если прогу запустить из-под инсталлятора, то права унаследуются на одну сессию). Дальнейшие попытки запустить программу не из инсталлятора приводят к появлению дебильного для висты запроса "непонятная прога.. чо делать бум? запускать?" А всё потому, что у юзера нет прав на полноценную работу с этим каталогом.
Что-то завязло дело с выпуском новых версий. Надеюсь, это оттого, что большой апдейт готовят..
Нее скорее всего кризис и до них добрался !
Великий Nullsoft на пороге разорения? То-то же: надо было развиваться, выпускать новые продукты, а не разгонять разработчиков и продавать бизнес кому-попало.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
Предыдущая тема: The Bat!
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.