|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Пользователь Сообщения: 148
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось sergey3695, 09-02-2013 в 16:08. Отправлено: 15:42, 09-02-2013 | #1631 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Ну все! Добил код:
1. Хинтов нет. Через ISHint.dll работает как-то стрёмно (вырезал), Сам хинт создаётся через функцию CreateWindowEx(...) как здесь ( http://forum.vingrad.ru/forum/topic-...-system/0.html ), но в какой-то момент нужно отправить через SendMessage(... , LPARAM(PTOOLINFO(@g_toolItem))); адрес переменной, а вот это в инно не реализовать: LPARAM(PTOOLINFO(@g_toolItem)), а функции типа CallbackAddr(), только для переменных я не нашел. Короче забил. Думаю хинтами можно пренебречь. Лично мне они нафиг не нужны (и так понятно что крестик закрывает окно...) 2. Зато классно получилось подменённое сис. меню (var SysPopupMenu: TPopupMenu ![]() создаём TPopupMenu функцией NewPopupMenu(), во входном параметре которой массив из TMenuItem. Их мы создаём функцией NewItem(), во входном параметре которой строка-текст айтема, а тут (внимание) работает ещё одна функция (изменённая и упрощённая мной под собственные нужды) от South (оригинал тут http://forum.ru-board.com/topic.cgi?...83&limit=1&m=1 ) function GetMenuItemText(const hMenu: HMENU; const uIDItem: UINT; const Default: String): String; hMenu - хэндл меню uIDItem - индекс айтема Default - если функция не отработает, то вернёт это имя для айтема короче говоря мы перекидываем имена айтемов ('Закрыть', в английской винде 'Close', в китайской иероглифы) в своё меню из системного, чтоб не писать константы сообщений! далее: Добавил сис. картинки (закрыть, свернуть) в меню функцией SetMenuItemBitmaps() кто хочет свои картинки, то делается это так: финальный код подмены сообщений: Дальнейшие улучшения кода с моей стороны не планируются. Пользуйтесь кто хочет, буду рад, только скин не забудьте перерисовать! ![]() ==================================================================================================== ============== sergey3695, Цитата sergey3695:
if (pt.x > rt.Left) and (pt.x < rt.Right-WizardForm.Width+27) and (pt.y > rt.Top) and (pt.y < rt.Bottom-WizardForm.Height+27) then в ней должны быть точные координаты прямоугольника, в котором лежит иконка (они могут сбиться например из-за большего размера формы чем у меня ну или типа того) |
|
Последний раз редактировалось Johny777, 10-02-2013 в 17:32. Причина: мелкое исправление Отправлено: 17:12, 10-02-2013 | #1632 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
![]() один совет: в коде, используя такие строки: добавляй еще PChar = PAnsiChar, т.к. Unicode компилятор инно не знает просто PChar'а. то есть должно быть так: |
|
Отправлено: 19:49, 10-02-2013 | #1633 |
![]() Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Подскажите плз, как и в какой секции нужно прописать условие чтобы при отсутствии ключа в реестре (HKEY_CURRENT_USER\Software\Test, "AppData", "REG_SZ", "7890" ) установщик (ехе) вообще не стартовал или если присутствует папка С:\{E99DDD46-1221-4DB4-81F0-F24D210EB41C} тогда разрешена установка?
Нашёл командную строку как компилировать скрипт Compil32.exe /cc "С:\Proekt\тест.iss", но мне нужно каждый раз создавать новый GUID-возможно сделать автоматическую генерацию нового GUID? Лучше вопрос, для чего нужен этот GUID-я думал для регистрации в реестре, но оказалось не так. Если мне нужно скомпилировать и получить 10 разных файлов ехе, для этого нужно генерировать GUID? |
------- Последний раз редактировалось TERMINAL, 13-02-2013 в 15:24. Отправлено: 14:41, 13-02-2013 | #1634 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Gnom_aka_Lexander у тебя есть ещё IsPictures?
|
Отправлено: 23:12, 13-02-2013 | #1635 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать insombia, есть.
|
------- Отправлено: 09:55, 14-02-2013 | #1636 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Gnom_aka_Lexander я бы скачал от тудого но ты меня там забанил за мультиакк
|
Отправлено: 13:53, 14-02-2013 | #1637 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата TERMINAL:
function InitializeSetup(): Boolean; begin Result := RegKeyExists(HKCU, 'SOFTWARE\Test') or DirExists(ExpandConstant('{sd}\{{E99DDD46-1221-4DB4-81F0-F24D210EB41C}')); end; Цитата TERMINAL:
Цитата TERMINAL:
Цитата TERMINAL:
Тогда из командной строки указать {#AppID} и скомпилировать скрипт можно так: Декларацию константы {#AppID} в скрипте нужно закомментировать, так как парсится позже, чем указанная через комстроку. Консольных генераторов GUID полно, осталось оформить в виде батника, например. |
||||
Отправлено: 17:38, 14-02-2013 | #1638 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать как добавить создание новой папки сюда ?
|
Отправлено: 20:01, 14-02-2013 | #1639 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать insombia,
|
Отправлено: 20:36, 14-02-2013 | #1640 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|