|
Компьютерный форум 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 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать CommCtrl.nsh ессно у меня есть и находится где положено : \NSIS\Include\CommCtrl.nsh
ps Да, у меня оказалась другая версия CommCtrl.nsh, которой всегда пользовался и всё всегда работало... Заменил на ту , что в справочнике, ошибка пропала. Откуда интересно этот файл взят ? Если пользователь возьмёт его из архива с http://nsis.sourceforge.net/mediawik...a/ListView.zip как на многих ресурсах и рекомендуется , то с NSIS 3 получит ошибку... Кто бы мог подумать... |
Последний раз редактировалось MKN, 11-02-2015 в 18:43. Отправлено: 18:35, 11-02-2015 | #1491 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Цитата MKN:
Цитата MKN:
|
|||
------- Отправлено: 18:56, 11-02-2015 | #1492 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать K.A.V.,
Глянул ваш пример по прогрессу, работает, хотя до конца не все оттестировал еще, но есть один мелкий графический баг, см. ,вложение. Как его побороть без ковыряния в ресурсах Нсис?! И дополнительно хотелось бы: - уменьшить высоту второго прогресс бара, на одну треть или в половину от текущей(надо поиграться с его настройками), как я понял из System::Call, параметры этого элемента прописаны, только не понятно что есть что в циферках.. - узнать, как правильно передать исполняемые процессы из какой-либо .dll, например, nsisUnRar2.dll, в этот созданный прогресс бар? - при достижении 100% выполнения, удалять этот прогресс из окна оставляя только основной прогресс в окне инсталлера. Спасибо.. |
Последний раз редактировалось MaGoth, 11-02-2015 в 20:40. Отправлено: 20:14, 11-02-2015 | #1493 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MaGoth:
Цитата MaGoth:
Цитата MaGoth:
Для создания элемента мы используем команду CreateWindowEx, описание на русском, например, можно посмотреть здесь, гуглится всё достаточно легко Из описания команды, думаю, вам всё станет более-менее ясно, какие параметры за что отвечают System::Call 'user32::CreateWindowEx(i0,t"msctls_progress32",t"",i${WS_CHILD}|${WS_VISIBLE},i5,i120,i520,i20,i$R0,i6666,i0,i0) i.R2' Цитата:
120 - позиция по вертикали 520 - ширина 20 - высота Цитата MaGoth:
Следует учесть тот факт, что у нас нет ни доков к этой dll, ни исходника...Так что в таком случае, можете только сидеть и методом тыка что-то пробовать, может чего и получится Вы же видите, что при начале распаковки файла из архива - dll показывает инфу в основном прогрессе + отображает текстовую информацию над прогрессом, эта dll была специально запилена под NSIS, сомневаюсь, что разрабы писали её как универсальное средство, как пишут плагины для NSIS... Цитата MaGoth:
|
||||||
------- Отправлено: 22:01, 11-02-2015 | #1494 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать K.A.V.,
Вчера я говорил, что "адаптированный" под nsDialogs пример "Считываем данные из консольного приложения в ListView" из справочника - не работает : получаю чистый ListView. ( чтобы никого не злить - у меня не работает... ) Ты наверное будешь смеяться, но оказалось дело в том, что гасит всё, применение стиля ${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" . Но достаточно добавить ${NSD_LV_InsertColumn} $ListView 0 450 "column 0" - и сразу всё работает. ( Не понятно, почему так получается, что обязательно нужно определить конкретный столбец и почему LVS_NOCOLUMNHEADER у меня игнорируется... ) Вот упрощённый код для этой ситуации : !include "MUI2.nsh" !include "WinMessages.nsh" !include "nsDialogs.nsh" !include "CommCtrl.nsh" ;!include "FileFunc.nsh" Page custom MyDialog "" !insertmacro MUI_LANGUAGE "Russian" Caption "Получение информации из консольного приложения" OutFile "NOCOLUMNHEADER-Test.exe" Var dlg Var /global ListView Function MyDialog nsDialogs::Create 1018 Pop $dlg ${NSD_CreateListView} 0u 0u 300u 140u "" Pop $ListView SendMessage $ListView ${LVM_SETEXTENDEDLISTVIEWSTYLE} "${LVS_EX_FULLROWSELECT}" "${LVS_EX_FULLROWSELECT}" ${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" # не работает ${NSD_LV_InsertColumn} $ListView 0 450 "column 0" # работает call getSystemInfo nsDialogs::Show FunctionEnd Function getSystemInfo ${NSD_LV_InsertItem} $ListView "0" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbb" SendMessage $ListView ${LVM_SETCOLUMNWIDTH} "0" "${LVSCW_AUTOSIZE}" FunctionEnd Section SectionEnd ps Действительно можно обойтись и без CommCtrl.nsh, закинув из него в скрипт только нужные макросы... ( Но это, наверное, не тот случай, когда нужно экономить... ) |
Последний раз редактировалось MKN, 12-02-2015 в 13:28. Отправлено: 11:45, 12-02-2015 | #1495 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Здесь проблема в другом, как я выяснил только что, всё дело в том, что в nsDialogs создание ListView происходит не так, как в IO, такое ощущение, что nsDialogs создаёт совсем голый элемент, и для того, чтобы "всё заработало", необходимо вручную дописать команду на вставку колонки, пусть даже и "невидимой" Т.е. после создания элемента тебе нужно дописывать команду на вставку колонки: В IO таких телодвижений не требуется, там элемент создаётся сразу в "рабочем состоянии" Скрытый текст
!include "MUI2.nsh" !include "WinMessages.nsh" !include "nsDialogs.nsh" !include "CommCtrl.nsh" ;!include "FileFunc.nsh" Page custom MyDialog !insertmacro MUI_LANGUAGE "Russian" OutFile "NOCOLUMNHEADER-Test.exe" Var dlg Var /global ListView Function MyDialog nsDialogs::Create 1018 Pop $dlg ${NSD_CreateListView} 0u 0u 300u 140u "" Pop $ListView SendMessage $ListView ${LVM_SETEXTENDEDLISTVIEWSTYLE} "${LVS_EX_FULLROWSELECT}" "${LVS_EX_FULLROWSELECT}" ${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" ${NSD_LV_InsertColumn} $ListView 0 450 "" call getSystemInfo nsDialogs::Show FunctionEnd Section SectionEnd Function getSystemInfo Push "ExecDos::End" # Add a marker for the loop to test for. ExecDos::exec /NOUNLOAD /TOSTACK "systeminfo" "" "" Pop $0 # return value StrCmp $0 0 0 Failed ## Loop through stack. Loop: Pop $1 StrCmp $1 "ExecDos::End" ExitLoop System::Call "user32::OemToChar(tr1, t.r1)" # SendMessage $R2 ${WM_SETTEXT} "0" "STR:$1" SendMessage $ListView ${LVM_GETITEMCOUNT} "" "" $R1 ${NSD_LV_InsertItem} $ListView "0" "$1" SendMessage $ListView ${LVM_ENSUREVISIBLE} $R1 1 SendMessage $ListView ${LVM_SETCOLUMNWIDTH} "0" "${LVSCW_AUTOSIZE}" Goto Loop ExitLoop: Return # Exit Function / Section Failed: MessageBox MB_OK "Exit code $0" Return # Exit Function / Section FunctionEnd Section -post SetAutoClose false SectionEnd опять панику разводишь, не работает у него ничего Цитата:
|
||
------- Отправлено: 13:46, 12-02-2015 | #1496 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
И никакой паники - просто информирую пользователей, ( чтобы у них не было паники, когда пример не заработает, т.е. у тех, кто не захочет связываться с допотопным IO ) Цитата K.A.V.:
ps И к слову сказать, ты напрасно называешь, якобы вытянутый из тебя, код - "всё готовенькое" Это самый что ни на есть настоящий и наглядный - пример, логически вытекающий из имеющегося описания в справочнике и вопросов-обсуждений на форуме. Это ведь - общепринятая форма обучения и закрепления любого материала. Именно по конкретному коду легче всего понимать предмет изучения. ( Жаль, что в справочнике таких примеров, мало или они вообще отсутствуют (может тогда и не было бы лишних вопросов))... |
||
Последний раз редактировалось MKN, 12-02-2015 в 16:23. Отправлено: 15:28, 12-02-2015 | #1497 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать Подскажите, можно ли заменить текст или число в определенной строке? Например, как на снимке: нужно заменить число 1 в строке, следующей за [SearchPOT].
|
Отправлено: 18:38, 12-02-2015 | #1498 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Цитата Kopejkin:
|
|
Отправлено: 18:45, 12-02-2015 | #1499 |
Пользователь Сообщения: 110
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MaGoth:
Так содержимое выглядит в Notepad+, если включить отображение всех символов. |
|
Последний раз редактировалось Kopejkin, 12-02-2015 в 19:25. Отправлено: 19:19, 12-02-2015 | #1500 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|