|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать И снова о "занятых" DLL...
Читать дальше...
В составе программы FolderSizes (foldersizes.com) есть файл FSShellExt.dll, с помощью которого в контекстное меню папок добавляются собственные команды программы. Мне нужно пропатчить эту dll-ку или, в крайнем случае, заменить своей и, конечно же, без перезагрузки. Проблема в том, что dll-ка "занята" и не поддается изменению/удалению. Скопировать её можно. Не очень понимая, что получаю, заметил такую закономерность. Пока контекстное меню папки (любой) не вызывалось, файл остается "свободным", хоть до выключения компьютера. Как только контекстное меню вызвано, файл "захватывает" Explorer.exe. Просто так его уже не удалить. Но файл FSShellExt.dll можно ЗАМЕНИТЬ вручную (из учетки администратора, Win 8.1), например, его же копией. Проводник сопротивляется, но все же дает выполнить эту операцию. О чудо! Файл теперь можно патчить, удалять, перемещать, переименовывать и т.д. И опять же, до вызова контекстного меню папки. Так как бы узнать, какая команда была выполнена, что Проводник разблокировал файл и можно ли это как-то использовать в сценарии NSIS? Насколько я понимаю, регистрация FSShellExt.dll не отменяется и сохраняется даже после его удаления. Контекстное меню начинает работать сразу же после копирования файла FSShellExt.dll на то же место (в папку программы) и вызова контекстного меню папки. |
Отправлено: 20:12, 27-11-2014 | #1381 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
|
|
Отправлено: 10:09, 28-11-2014 | #1382 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Подставляю имя dll-ки в пример LockedListShell32.nsi для проверки. Читать дальше
Name `LockedList Test` OutFile LockedListTest.exe RequestExecutionLevel user !include MUI2.nsh !include x64.nsh !insertmacro MUI_PAGE_WELCOME Page Custom LockedListShow !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE English Function LockedListShow !insertmacro MUI_HEADER_TEXT `LockedList Test` `Using AddModule and shell32.dll` ${If} ${RunningX64} File /oname=$PLUGINSDIR\LockedList64.dll `${NSISDIR}\Plugins\x86-ansi\LockedList64.dll` ${EndIf} LockedList::AddModule \FSShellExt.dll ;LockedList::AddModule "C:\Program Files\Key Metric Software\FolderSizes 7\FSShellExt.dll" LockedList::Dialog Pop $R0 FunctionEnd Section SectionEnd |
|
Отправлено: 21:56, 28-11-2014 | #1383 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
Цитата:
Если работать с TotalCommander_ом, то LockedList всё прекрасно отображает... Я с explorer_ом никогда не работаю, потому и не заметил... В чём дело, пока не известно... Надо бы задать этот вопрос автору плагина. Если хочешь, попробуй спросить на http://forums.winamp.com/showthread.php?t=274168&page=8 Ты ведь английским хорошо владеешь ? ( Как вариант, можно попробовать предыдущие версии плагина, вдруг автор именно в этой последней версии чего то забыл... Так иногда бывает... ) ps С другой стороны - ведь прекрасно известно, что именно explorer.exe занимает FSShellExt.dll. Ну так и гаси его перед манипуляциями с DLL. Лучше с сообщением-предупреждением. ps2 Потому и хотелось бы автономного кода NSIS, для этих целей (определение конкретных процессов, использующих конкретную указанную DLL (OCX или EXE ), с последующим закрытием этого(этих) процесса(ов) . Может kotkovets поможет (хорошо бы добавить такую возможность в его замечательный ProcessFunс.nsh ) ? Вячеслав, помоги пожалуйста решить эту задачу. |
||
Последний раз редактировалось MKN, 29-11-2014 в 10:25. Отправлено: 09:58, 29-11-2014 | #1384 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
|
|
Отправлено: 10:44, 29-11-2014 | #1385 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
Цитата:
У меня рестарт проводника в W8x32 происходит нормально - на секнду исчезают значки раб стола и затем восстанавливаются. Может как то и можно принудительно "заморозить" на время рестарта это не красивое исчезновение - не знаю... |
||
Последний раз редактировалось MKN, 29-11-2014 в 12:14. Отправлено: 11:37, 29-11-2014 | #1386 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Командно работает точно также. Оказывается explorer.exe убивается и запускается - его видно в диспетчере задач - но какой-то недоделанный. Чтобы стал виден Рабочий стол, Проводник нужно запустить из Диспетчера как новую задачу. В общем, не знаю, как правильно пояснить. Может маленькое видео поможет. |
|
Последний раз редактировалось Kopejkin, 30-11-2014 в 00:14. Отправлено: 20:45, 29-11-2014 | #1387 |
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать Здравствуйте господа форумчане. Спустя много времени я решил вернутся к своему старому проекту, а посему нужна ваша помощь. Как из окошка исполняемой консольной программы передать все что там выводится в функцию nsis? Логирование в реальном времени. Это нужно прежде всего, чтобы "поймать" нужное сообщение, и послать окошку нажатие enter как только оно(нужное сообщение) появится, ну и чтобы посылать весь лог в detailed окно nsis. Вы скажете "а почему бы тебе не использовать execdos plug-in для этих целей?" С ним- не получается почему-то.Использую execcmd.
|
Отправлено: 23:27, 30-11-2014 | #1388 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Нашел решение своей проблемы с плагинами. По умолчанию при вызове ф-ции из плагина dll-ка перед выполнением загружается в память, а после выполнения выгружается из памяти. И так каждый раз при вызове любой ф-ции dll. Поэтому данные в памяти не сохраняются между вызовами dll. Чтобы dll каждый раз не выгружалась, следовало использовать "/NOUNLOAD" или "SetPluginsUnload". Однако с версии 2.42 эти "штуки" считаются устаревшими и не рекомендуются для использования. Вот здесь в последнем сообщении есть пример на Delphi, как создать dll, которая сохраняет память между вызовами ее ф-ций.
|
Последний раз редактировалось Sann-X!, 01-12-2014 в 09:15. Отправлено: 09:02, 01-12-2014 | #1389 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Vincent7:
Цитата Vincent7:
Цитата Vincent7:
Интересно, он прочитает документацию к плагину и посмотрит примеры, или как год назад начнёт насиловать мозг глупыми вопросами? |
|||
------- Отправлено: 17:59, 01-12-2014 | #1390 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
[архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|