|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Пользователь Сообщения: 108
|
Профиль | Сайт | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2355
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
|
|
Отправлено: 10:09, 28-11-2014 | #1382 |
Пользователь Сообщения: 108
|
Профиль | Сайт | Отправить 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 |
Ветеран Сообщения: 2355
|
Профиль | Отправить 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 |
Пользователь Сообщения: 108
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
|
|
Отправлено: 10:44, 29-11-2014 | #1385 |
Ветеран Сообщения: 2355
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
Цитата:
У меня рестарт проводника в W8x32 происходит нормально - на секнду исчезают значки раб стола и затем восстанавливаются. Может как то и можно принудительно "заморозить" на время рестарта это не красивое исчезновение - не знаю... |
||
Последний раз редактировалось MKN, 29-11-2014 в 12:14. Отправлено: 11:37, 29-11-2014 | #1386 |
Пользователь Сообщения: 108
|
Профиль | Сайт | Отправить 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 |
|