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

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

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

Аватара для El Sanchez

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

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

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

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Serega:
Узнаёте SID пользователя »
R.i.m.s.k.y., SID или имя залогиненного пользователя можете узнать так:
читать дальше »

Код: Выделить весь код
#define A = (Defined UNICODE) ? "W" : "A"
const
    WTS_CURRENT_SERVER_HANDLE = 0;
    WTS_CURRENT_SESSION = (-1);
    WTSUserName = 5;

function WTSQuerySessionInformation(hServer: THandle; SessionId, WTSInfoClass: DWORD; var ppBuffer: Longint; var pBytesReturned: DWORD): BOOL; external 'WTSQuerySessionInformation{#A}@wtsapi32.dll stdcall';
procedure WTSFreeMemory(pMemory: Longint); external 'WTSFreeMemory@wtsapi32.dll stdcall';

///////////////////////////////////////////////////////
function GetLoggedOnUser(const IsSID: Boolean): String;
var
    i: Integer;
    aNames: TArrayOfString;
    dwLength: DWORD;
    lpBuffer: Longint;
begin
    if not RegGetSubkeyNames(HKLM, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList', aNames) then Exit;
    try
        if not WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSUserName, lpBuffer, dwLength) then Exit;
        Result := CastIntegerToString(lpBuffer);
        if IsSID then for i := 0 to GetArrayLength(aNames)-1 do if Pos(Lowercase(Result), LowerCase(ExpandConstant(Format('{reg:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%s,ProfileImagePath|}', [aNames[i]])))) > 0 then
        begin
            Result := aNames[i];
            Break;
        end;
    finally
        WTSFreeMemory(lpBuffer);
    end;
end;

/////////////////////////////
procedure InitializeWizard();
begin
    MsgBox(GetLoggedOnUser(False), mbInformation, MB_OK);
    MsgBox(GetLoggedOnUser(True), mbInformation, MB_OK);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:27, 05-03-2014 | #2441



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

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


Аватара для Dodakaedr

Ветеран


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

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


nik1967, спасибо

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 05-03-2014 в 22:22.


Отправлено: 22:10, 05-03-2014 | #2442


Аватара для Dodakaedr

Ветеран


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

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


Как это исправить?


Отправлено: 22:40, 05-03-2014 | #2443


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


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

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


Помогите пожалуйста с инсталлятором INNO SETUP
Написал инсталлятор, но хотелось бы разбить выбор компонентов через PageControl ну или что в этом духе, так как компонент очень много и все это рябит в глазах, вот к примеру как на скринах которые нарисовал в фотошопе.


Отправлено: 02:41, 06-03-2014 | #2444


Аватара для Debugger

Ветеран


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

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


У меня в проекте довольно много компонентов. Но некоторые записи в реестр в секции [Registry] общие для всех компонентов. Нельзя ли както сделать одну общую запись для нескольких компонентов? К сожалению указание в флаге Components нескольких приводит к ошибке при компиляции. Иначе ужасно много одинаковой писанины для каждого компонента получается!

Отправлено: 13:09, 06-03-2014 | #2445


Аватара для Johny777

Ветеран


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

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


nik1967, Dodakaedr, непосредственное удаление элемента "О программе" из системного меню программы
читать дальше »
Код: Выделить весь код
const
    MF_BYPOSITION = $400;

function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';
function DeleteMenu(hMenu: HMENU; uPosition, uFlags: UINT): BOOL; external 'DeleteMenu@user32.dll stdcall';

function DeleteAboutMenu(): BOOL;
var
    hSysMenu: HMENU;
begin
    // получаем хэндл сис. меню
    hSysMenu := GetSystemMenu(WizardForm.Handle, False);

              // удаляем по позиции(индексу) MF_BYPOSITION. На 7-м месте находится разделитель. Удаляем его
    Result := DeleteMenu(hSysMenu, 7, MF_BYPOSITION) and
    
              // после этого на 7-ю позицию встаёт айтем "О программе". Ещё раз удаляем 7-й айтем
              DeleteMenu(hSysMenu, 7, MF_BYPOSITION);
end;

procedure InitializeWizard();
begin
    DeleteAboutMenu();
end;

PS: можно конечно сначала удалить 8-й (это и есть изначально айтем "О программе"), а потом 7-й.
Хотя вообще 7-й не обязательно удадять. Но нафиг нужен разделитель который ничего не отделяет?

Serega, El Sanchez, благодарю за полезную информацию.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:00, 06-03-2014 | #2446


SHVtYW4=


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

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


Цитата Dodakaedr:
Как это исправить? »
Никак. Реализовать внесение значений в "SYSTEM\ControlSet001\Enum\Root" возможно, но не нужно - от незнания как это работает и для чего: лучше не лезть вообще. По данному вопросу вряд ли кто поможет.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 14:04, 06-03-2014 | #2447


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


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

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


Цитата Debugger:
указание в флаге Components нескольких приводит к ошибке при компиляции »
Это смотря как указывать.
В этом случае компоненты нужно соединять логическими операциями, в вашем случае скорее "or".
Код: Выделить весь код
[Components]
Name: "a"; Description: "comp a"
Name: "b"; Description: "comp b"

[Registry]
Root: "HKLM"; Subkey: ... ; Components a or b
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:26, 06-03-2014 | #2448


Аватара для Dodakaedr

Ветеран


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

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


Цитата Nordek:
Никак. Реализовать внесение значений »
Ясно. Спасибо. А unpacker есть который поддерживает 5.5 версию inno setup?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:25, 06-03-2014 | #2449


Аватара для Dodakaedr

Ветеран


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

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


Цитата saurn:
Вроде пока только до версии 5.5.4 »
Это та что в шапке?

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:52, 06-03-2014 | #2450



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты 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




 
Переход