|
Компьютерный форум 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 |
![]() Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата diakov:
В классическом тултипе не срабатывает переноска строк, в модерне переносит ![]() |
|
------- Отправлено: 01:05, 19-01-2013 | #81 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Небольшой набросок тултипа, сделанный когда-то для личных нужд..
раз уж пошла такая пьянка... |
------- Отправлено: 01:07, 19-01-2013 | #82 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Попытаюсь примерами "подогреть" интерес к NSIS System Plug-in и в частности к функции CreateWindowEx .
Пример 1 : Создаём на странице окно и помещаем в это окно WebBrowser : (можно просматривать страницы, как в интернете, так и локально обычные htm html ) !AddPluginDir ".\" !include MUI2.nsh Page custom fnc_Create ;!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" Name "test2_CreateWindowEx" Caption "test2 CreateWindowEx" OutFile "test2_CreateWindowEx.exe" Var dlg Function fnc_Create nsDialogs::Create 1018 Pop $dlg System::Call `*(i,i,i,i)i(1,34,200,100).R0` System::Call `user32::MapDialogRect(i$HWNDPARENT,iR0)` System::Call `*$R0(i.s,i.s,i.s,i.s)` System::Free $R0 FindWindow $R0 "#32770" "" $HWNDPARENT System::Call `user32::CreateWindowEx(i,t"STATIC",in,i${DEFAULT_STYLES}|${SS_GRAYFRAME},i1,i1,i400,i200,iR0,i1100,in,in)i.R0` WebCtrl::ShowWebInCtrl $R0 "http://www.google.ru" ;или ;WebCtrl::ShowWebInCtrl $R0 "$EXEDIR\index.htm" nsDialogs::Show FunctionEnd Section SectionEnd Функция CreateWindowEx создает разнообразные окна с расширенным стилем для разнообразных объектов. "STATIC" - (статический элемент) Обозначает простое текстовое поле, окно или прямоугольник, используемый для надписей, окно или другие отдельные органы управления. Координаты и размеры окна в данном примере, меняются в значениях - i1,i1,i400,i200 Стиль прямоугольника окна можно изменять (в примере это ${SS_GRAYFRAME} Наглядно видно что происходит, если менять например, на SS.BLACKRECT , SS_GRAYRECT и т.д. , не подгружая WebCtrl ), Можно задавать тип объекта (создать кнопку, чекбокс, тултип, картинку, область текста и др.. ) Функция MapDialogRect конвертирует (преобразует) заданные единицы измерения диалогового окна - в экранные единицы (пиксели). Команда WebCtrl:: работает со специальной DLL (это модернизированный nsWeb плагин ) |
Последний раз редактировалось MKN, 27-05-2020 в 16:17. Отправлено: 10:36, 19-01-2013 | #83 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
!define TTM_SETMAXTIPWIDTH 0x418 Function .onMouseOverSection ${If} $0 = -1 killtip: SendMessage $ttip ${TTM_ACTIVATE} 0 0 Return ${EndIf} StrCpy $2 "" ${If} $ttip = 0 System::Call 'USER32::CreateWindowEx(i${WS_EX_TOPMOST},t"tooltips_class32",i,i${WS_POPUP},i,i,i,i,i0,i,i,i)i.r2' StrCpy $ttip $2 SendMessage $ttip ${TTM_SETMAXTIPWIDTH} 0 0xFFFFFF ${EndIf} Цитата K.A.V.:
--- зы. в моем примере уже автоматом добавляется это свойство тултипу |
||
------- Отправлено: 14:57, 19-01-2013 | #84 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
Отправлено: 00:56, 20-01-2013 | #85 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
|
|
------- Отправлено: 11:39, 20-01-2013 | #86 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets, есть такой вопрос...вот например мозила создает папку профиля вот так
С:\Users\Пользователь\AppData\Roaming\Mozilla\Firefox\Profiles\5z4z2uxh.default\ Тоесть у каждого индивидуальная папка 5z4z2uxh.default, возможно ли как то получить в переменную этот путь, скажем прочить путь входящего в папку файла или как такое можно провернуть? Чтобы при установке можно было дописать в нее некоторые файлы. Например как в описаном K.A.V. методе...только получается что в моем случае путь задан неявно... |
Последний раз редактировалось diakov, 20-01-2013 в 12:52. Отправлено: 12:22, 20-01-2013 | #87 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать diakov, а подумать?
например переменная $APPDATA при SetShellVarContext current возвращает такой путь: Section SetShellVarContext current MessageBox MB_OK "$APPDATA\Mozilla\Firefox\Profiles" IDOK SectionEnd дальше просто в этой папке ищем папки по маске *uxh.default OutFile test.exe !include Logiclib.nsh ShowInstDetails show Function FindProfiles MessageBox MB_OK "$APPDATA\Mozilla\Firefox\Profiles\$1" IDOK FunctionEnd Section SetShellVarContext current FindFirst $0 $1 "$APPDATA\Mozilla\Firefox\Profiles\*uxh.default" ${DoUntil} $1 == "" Call FindProfiles FindNext $0 $1 ${Loop} FindClose $0 SectionEnd под свои конкретные задачи скрипт переделать легко! действуй! |
------- Отправлено: 13:02, 20-01-2013 | #88 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Благодарствую сейчас буду экспериментировать.
|
Отправлено: 13:08, 20-01-2013 | #89 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Применеие в NSIS функции CreateWindowEx
Пример 2. Размещение текста на странице. StrCpy $R0 "Текст Текст Текст Текст" FindWindow $0 "#32770" "" $HWNDPARENT System::Call 'USER32::CreateWindowEx(i0,t "STATIC",t "$R0",i ${WS_CHILD}|${WS_VISIBLE},i140,i50,i200,i100,i $0,i222,i0,i0) $R2' Теперь, изменим создаваемый элемент управления (встроенного класса ) "STATIC" - на класс "EDIT" Цитата:
Ещё раз про установленные стили окна: Цитата:
Цитата:
!include MUI2.nsh Page custom fnc_Create ;!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" OutFile "test3_CreateWindowEx.exe" Var dlg Function fnc_Create nsDialogs::Create 1018 Pop $dlg StrCpy $R0 "Текст Текст Текст Текст" FindWindow $0 "#32770" "" $HWNDPARENT System::Call 'user32::CreateWindowEx(i0,t "EDIT",t "$R0",i ${WS_VISIBLE}|${WS_CHILD}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN}|${ES_AUTOVSCROLL},i50,i100,i200,i60,i $0,i222,i0,i0) $R2' nsDialogs::Show FunctionEnd Section SectionEnd |
|||
Последний раз редактировалось MKN, 20-01-2013 в 18:12. Отправлено: 18:05, 20-01-2013 | #90 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|