Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Закрытая тема
Настройки темы
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;
    Предыдущая версия: 5.3.0 [07.04.2009] - Скачать (зеркало) | Русификатор (зеркало);

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 22:06, 23-08-2009

 

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Такая проблема в папке maps большое количество файлов, примерно на 1GB после компиляции установщик весит 611мб. Проблема в том что после компиляции ярлык pack.ico не прикрепляется то есть устанавливается обычный системный ярлык. Проверял скрипт на нескольких файлах в папке - все нормально. Как сделать чтобы при больших количествах файлов прикреплялся нормально ярлык к установщику? Моя версия inno setup 5.3.9 unicode

код:
Код: Выделить весь код
[Setup]
AppName=BigMapPack
AppVersion=1.0
AppPublisher=Publisher
AppPublisherURL=http://www.site.ru./
AppVerName=BigMapPack version 1.0
DefaultDirName={pf}\Steam\SteamApps\<your steam login>
Compression=lzma2
SetupIconFile=pack.ico      <------- этот ярлык не крепится при большом количестве файлов
WizardImageFile=logo.bmp
Uninstallable=no

[Files]
Source: "maps\*"; DestDir: "{app}\counter-strike source\cstrike\maps";

[Languages]
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "en"; MessagesFile: "compiler:Default.isl"
[Messages]
ru.SelectDirBrowseLabel=Вместо <your steam login> введите ваш логин в steam, программа сама установит в директорию с:\program files\steam\SteamApps\<ваш логин в steam>\counter-strike source\cstrike\maps
en.SelectDirBrowseLabel=Enter your steam login, end click next

Отправлено: 02:41, 31-10-2010 | #2591



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Serega:
А при чем тут права для инсталлятора и папка текущего пользователя? Простой пример: »
Спасибо за ответ! Но вот в чем проблема, когда на виндовс 7 запускаешь инсталятор, он спрашивает пароль админа, и запускает инсталл от его имени, в итоге твоя программа вывела путь к папке админа а не к папке запустившего юзера..

Отправлено: 07:53, 31-10-2010 | #2592


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата somename:
в итоге твоя программа вывела путь к папке админа а не к папке запустившего юзера. »
В том то всё и дело, что на данный момент для инсталлятора, админ и есть текущий пользователь, т.к. именно он и запустил инсталлятор...
Да, конечно интересная ситуация, но попробуйте так:
Пример

Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra64
InternalCompressLevel=ultra64
SolidCompression=yes

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Code]
function SHGetSpecialFolderPath(hwndOwner: HWND; lpszPath: PAnsiChar; nFolder: Integer; fCreate: BOOL): BOOL;
  external 'SHGetSpecialFolderPathA@shell32.dll stdcall';

const
  MAX_PATH = 260;
  // Папка пользователя (обычно C:\Documents and Settings\username)
  CSIDL_PROFILE                 = $28;

function GetSpecialPath(CSIDL: Word): string;
var
  s:  string;
begin
  SetLength(s, MAX_PATH);
  if not SHGetSpecialFolderPath(0, PAnsiChar(s), CSIDL, True) then s := '';
  Result := PAnsiChar(s);
end;

function InitializeSetup(): Boolean;
begin
  // определим расположение папки пользователя
  MsgBox(GetSpecialPath(CSIDL_PROFILE), mbInformation, MB_OK);
end;

Запустите инсталлятор от имени админа и какой путь покажет в сообщении?
Ну откровенно говоря, мне кажется, что должен показать папку админа...

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 08:45, 31-10-2010 | #2593


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Serega:
Запустите инсталлятор от имени админа и какой путь покажет в сообщении?
Ну откровенно говоря, мне кажется, что должен показать папку админа... »
Так и есть, папка админа. На сайте инно сетап еще было написано про жту проблему но про решение ничего не сказано.
p.s. я и батник бытался запускать после установки, но он также от админа запусскается..

Отправлено: 08:49, 31-10-2010 | #2594


Пользователь


Сообщения: 58
Благодарности: 6

Профиль | Отправить PM | Цитировать


как сделать выбор записей реестра в зависимости от выбранных компонентов?

Отправлено: 10:25, 31-10-2010 | #2595


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата somename:
Так и есть, папка админа. »
Немного поразмыслив и поковырявшись в реестре... накидал такой пример, попробуйте:
Пример

Ссылка на исправленный скрипт


при редактировании ссылки, случайно удалил ответ Imitri7

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 04-11-2010 в 01:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:09, 31-10-2010 | #2596


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Serega:
Немного поразмыслив и поковырявшись в реестре... накидал такой пример, попробуйте: »
На windows 7 пустое окошко.. Ладно, видимо придется обратится к другому инсталлеру

Отправлено: 11:40, 31-10-2010 | #2597


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата somename:
Ладно, видимо придется обратится к другому инсталлеру »
Да ладно, к другому инсталлеру, напишите сюда нормальный путь к папке на диске ЦЭ, и в скрипте Сереги я бы подставил UpperCase()

(Pos(UpperCase(LogonUser), UpperCase(Result))

чтобы все буквы при сравнении были большими.


А вообще я бы в коде подписал

MsgBox('{localappdata} ' + ' = ' + ExpandConstant('{localappdata}'), mbInformation, MB_OK);
MsgBox('{userappdata}' + ' = ' + ExpandConstant('{userappdata}'), mbInformation, MB_OK);
MsgBox('{commonappdata}' + ' = ' + ExpandConstant('{commonappdata}'), mbInformation, MB_OK);

ну и тд перебрать все константы:
{userdesktop} & {commondesktop} *
{userdocs} & {commondocs}
{userfavorites} & {commonfavorites} *
{userfavorites}.
{userprograms} & {commonprograms} *
{userstartmenu} & {commonstartmenu} *
{userstartup} & {commonstartup} *
{usertemplates} & {commontemplates} *

Будет видно какая константа на какую папку ссылается


Когда у меня возникла необходимость в папках юзера я тоже писал код, похожий как у Сереги, а потом просто сделал перебор папок с выводом на экран - и о чудо, папка нашлась в списке

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 01-11-2010 в 09:20.


Отправлено: 08:58, 01-11-2010 | #2598


Аватара для STRAYKER

Пользователь


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


как сделать чтобы в конце установки игры , предлагало установить дополнительные программы

Отправлено: 16:48, 01-11-2010 | #2599


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата STRAYKER:
как сделать чтобы в конце установки игры , предлагало установить дополнительные программы »
[RUN]
Filename: {src}\directx\dxsetup.exe; Description: установить Дирекс; Flags: shellexec skipifsilent postinstall

самый главный флаг - postinstall, именно он указывает будет ли строчка с выбором.
shellexec - запустить от оболочки (полезно для файлов помощи, страничек...)
skipifsilent и так понятно

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 16:53, 01-11-2010 | #2600



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход