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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



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

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

Отправлено: 08:52, 02-02-2015

 

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


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

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


Цитата R.i.m.s.k.y.:
сперва почитать про current user и original user
потом сформулировать вопрос правильно, а я пока поищу у себя, когда-то давным давно я так делал :D »
О current user и original user Google ничего не выдаёт и в документации на jrsoftware тоже не нашел.
Может у Вас есть ссылочки?

Отправлено: 13:58, 13-01-2017 | #1781



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

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


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


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

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


Изображения
Тип файла: png Безымянный.png
(106.3 Kb, 8 просмотров)

Всем привет как убрать выбор компонентов, на картинке выделил !

Отправлено: 14:01, 13-01-2017 | #1782


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

Ветеран


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

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


Цитата jdcorg:
О current user и original user Google ничего не выдаёт и в документации на jrsoftware тоже не нашел.
Может у Вас есть ссылочки? »
есть http://forum.oszone.net/post-2321537.html#post2321537 (вторая ссылка в яндексе по поиску originaluser currentuser)

я те прям работающий кусок кода дам

Код: Выделить весь код
[CODE]
var
  Original_SID, Original_UserName : string;

#ifdef UNICODE
  #define A "W"
 #else
  #define A "A"
#endif

#ifdef UNICODE
  #define A "W"
 #else
  #define A "A"
#endif


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 GetLastError(): DWORD; external 'GetLastError@kernel32.dll stdcall';

function GetLoggedOnUserName(): String;
var
    aNames: TArrayOfString;
    dwLength: DWORD;
    lpBuffer: Longint;
begin
    Result:=GetUserNameString; // по-умолчанию текущий пользователь, для WinXP, в которой WTSQuerySessionInformation не отрабатывает, ошибка 1702
    try
        if not WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSUserName, lpBuffer, dwLength) then
        begin
          //dwLength := GetLastError();
          //MsgBox(IntToStr(dwLength), mbError, mb_Ok);
          Exit;
        end;
        Result := CastIntegerToString(lpBuffer);
    finally
        WTSFreeMemory(lpBuffer);
    end;
end;

type
  PSID = record
    buffer: array [0..1024] of char;
  end;

function LookupAccountName(lpSystemName: DWORD; lpAccountName: AnsiString;
  var Sid: PSID; var cbSid: DWORD; ReferencedDomainName: AnsiString;
  var cbReferencedDomainName: DWORD; var peUse: DWORD): BOOL; external 'LookupAccountNameA@advapi32.dll stdcall';
function ConvertSidToStringSid(var Sid: PSID; var pStringSid: DWORD): BOOL; external 'ConvertSidToStringSidA@advapi32.dll stdcall';
function lstrcat(lpString1: AnsiString; lpString2: DWORD):DWORD; external 'lstrcat@kernel32.dll stdcall';

function GetUserSID(userName: AnsiString):string;
var
  Sid: PSID;
  cbSid, len, peUse, ssid: DWORD;
  ansi: AnsiString;
  Success: BOOL;
begin
  cbSid := 1024;
  len := 1024;
  ansi := StringOfChar(#0, 1024);
  Success := LookupAccountName(0, userName, Sid, cbSid, ansi, len, peUse);
  if Success then
  begin
    ConvertSidToStringSid(Sid, ssid);
    ansi := StringOfChar(#0,1024);
    lstrcat(ansi,ssid);
    len := pos(#0,ansi);
    Result := copy(string(ansi),1,len-1);
  end;
end;

function GetOriginalSID(s:string): string;
begin
  Result := Original_SID;
end;

function SVPSettingsFolder(string : string) : string;
var s:string;
begin
if (SVPSettingsFolderTrue) then begin
  result := ExpandConstant('{userappdata}');
  if IsComponentSelected('nastrSVP\settingsLocate\localuser') then
  begin
    if Original_UserName = GetUserNameString then
      result := ExpandConstant('{userappdata}')
    else
      if RegQueryStringValue(HKU, Original_SID+'\Volatile Environment', 'APPDATA', s) then
        result := RemoveBackslashUnlessRoot(s)
    else
        result := ExpandConstant('{commonappdata}'); // если вдруг не прочиталось из реестра
  end;
  if IsComponentSelected('nastrSVP\settingsLocate\publicuser') then result := ExpandConstant('{commonappdata}');
end else result := '!!! SVPSettingsFolder not defined !!!';
end;

Function InitializeSetup: Boolean;
begin
  Original_UserName := GetLoggedOnUserName;
  Original_SID := GetUserSID(original_UserName);
end;
кто догадается от установщика какой проги этот кусок кода тот может взять с полки пирожок, там их два, можно взять средний

Valera90,
Код: Выделить весь код
procedure InitializeWizard();
begin
...
WizardForm.TypesCombo.Hide
...
end;

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


Последний раз редактировалось R.i.m.s.k.y., 13-01-2017 в 14:22.

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

Отправлено: 14:09, 13-01-2017 | #1783


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


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

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


Цитата R.i.m.s.k.y.:
я те прям работающий кусок кода дам »
Спасибо!

Отправлено: 14:26, 13-01-2017 | #1784


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

Ветеран


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

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


jdcorg, спасибо надо не говорить а нажимать
вкрации original user входит в ОС, current user запускает прогу runas

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


Отправлено: 14:29, 13-01-2017 | #1785


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


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

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


Привет всем еще раз, помню тут был простой скрипт у кого то пример на добавление картинок при наведение мышкой на компонент, скиньте пожалуйста

Отправлено: 14:45, 13-01-2017 | #1786


SHVtYW4=


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

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


Цитата Valera90:
на добавление картинок при наведение мышкой на компонент »
#662
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:12, 13-01-2017 | #1787


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


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

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


Цитата R.i.m.s.k.y.:
я те прям работающий кусок кода дам »
При установке должны меняться значения разделов реестра в ветке HKCU.
Я вижу, что этого не происходит ни у текущего юзера, ни у админа.
Тогда простая замена имени юзера в пути к каталогам не имеет смысла.

Отправлено: 22:51, 13-01-2017 | #1788


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

Ветеран


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

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


jdcorg, УМВР
добавь MSGBOX (имя пользователя, куст реестра, путь до папки) и посмотри верно ли определяется все пути

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


Отправлено: 23:09, 13-01-2017 | #1789


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


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

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


Цитата R.i.m.s.k.y.:
dcorg, УМВР
добавь MSGBOX (имя пользователя, куст реестра, путь до папки) и посмотри верно ли определяется все пути »
Запускал установку на админской учётке - все файлы и записи в реестре устанавливаются корректно.
Запускал от имени админа на учётке простого юзера: файлы устанавливаются в соответствующие каталоги простого юзера, но записей в HKCU нет. Я так понимаю, что шаманство с файловыми путями в установочном файле не меняет принципа операционной системы- запустил от имени админа значит ОС все действия выполняет именно для учётки админа.

Отправлено: 00:38, 14-01-2017 | #1790



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты 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




 
Переход