Inno Setup (создание инсталяционных пакетов)

Статус
В этой теме нельзя размещать новые ответы.

sergey3695

Ветеран
Модератор
Shift85,
1. Вырезанием цвета
Код:
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongW@user32.dll stdcall';
function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: BYTE; dwFlags: DWORD): Boolean; external 'SetLayeredWindowAttributes@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongW@user32.dll stdcall';
...
  SetWindowLong(WizardForm.Handle,-20,GetWindowLong(WizardForm.Handle,-20) or $80000);
  SetLayeredWindowAttributes(WizardForm.Handle,$000008,0,1);
фотошопом перекрась края в $000008 цвет. (если картинка из закоса взята то там вырезанием сделано)
2. Если хочешь через ботву то сделай без зеленых краев .png картинку и в примерах смотри с библой.
urban, зеленые края у картинки.
 
Последнее редактирование:

Tolyak26

Новичок
Прошу помощи в переделке удаления сохранений и настроек игры:
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var ResultStr:String;
begin
if CurUninstallStep=usPostUninstall then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Game\{#MyAppRegName}', 'UnInstConfirm', ResultStr)
if DirExists(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}') then
if MsgBox(ExpandConstant('{cm:DeleteDocs1}'),mbconfirmation, mb_YesNo) = IDYES then
begin
if not DelTree(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}', True, True, True)
then
MsgBox(ExpandConstant('{cm:DeleteDocs2}') + #13#13 + ExpandConstant('{cm:DeleteDocs3}'), mbError, MB_OK);
end;
end;
end;

Я хочу сделать так, чтобы после удаления папки в документах пользователя так же удалялась папка допустим C:\Users\Имя_Пользователя\AppData\Local\FLT\Steam\219740\remote
 
Последнее редактирование:

Mailchik

Старожил
Проверенный
Прошу помощи в переделке удаления сохранений и настроек игры:
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var ResultStr:String;
begin
if CurUninstallStep=usPostUninstall then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Game\{#MyAppRegName}', 'UnInstConfirm', ResultStr)
if DirExists(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}') then
if MsgBox(ExpandConstant('{cm:DeleteDocs1}'),mbconfirmation, mb_YesNo) = IDYES then
begin
if not DelTree(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}', True, True, True)
then
MsgBox(ExpandConstant('{cm:DeleteDocs2}') + #13#13 + ExpandConstant('{cm:DeleteDocs3}'), mbError, MB_OK);
end;
end;
end;

Я хочу сделать так, чтобы после удаления папки в документах пользователя так же удалялась папка допустим C:\Users\Имя_Пользователя\AppData\Local\FLT\Steam\219740\remote
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  ResultStr: String;
begin
  if CurUninstallStep = usPostUninstall then begin
    RegQueryStringValue(HKLM, 'SOFTWARE\Game\{#MyAppRegName}', 'UnInstConfirm', ResultStr)
    if DirExists(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}') then
      if MsgBox(ExpandConstant('{cm:DeleteDocs1}'), mbconfirmation, mb_YesNo) = IDYES then begin
        if not DelTree(ExpandConstant('{userdocs}')+'\{#MyAppDocPath}', True, True, True) then
          MsgBox(ExpandConstant('{cm:DeleteDocs2}') + #13#13 + ExpandConstant('{cm:DeleteDocs3}'),
            mbError, MB_OK) else DelTree(ExpandConstant('{localappdata}')+'\FLT\Steam\219740\remote', True, True, True);
      end;
  end;
end;
 

Shift85

Старожил
Как наложить через ботву кнопки свернуть и закрыть.Покажите пример пожалуйста.
Зарание спасибо...
 

Sal'vador

Мимокрокодил
Как убрать данный пункт?
Когда в скрипте команды отвечающие за данный пункт комментируешь, появляется вот такая ошибка
 

vint56

Ветеран
Проверенный
Shift85
Как через ботву наложить такую форму чтобы зеленые края потом были прозрачные
1 пример я вырезал из скрипта
http://rghost.ru/51889165
2 пример от Htuos давно довал на ru-board
http://rghost.ru/51889218
По мне лутше 1 пример там меньше возить с 00ff00 с цветом в фотошопе с краями

Как наложить через ботву кнопки свернуть и закрыть.Покажите пример пожалуйста.
Зарание спасибо..
2 примере есть что тебе надо
 

Mailchik

Старожил
Проверенный
Как убрать данный пункт?
Когда в скрипте команды отвечающие за данный пункт комментируешь, появляется вот такая ошибка
В скрипте ChangeLanguage.iss закоментируйте строки начинающиеся на "WizardForm.TasksList.ItemCaption[3]".
 

Tolyak26

Новичок
Mailchik, Спасибо, но еще бы хотелось, что бы как и папка в Документах пользователя эта папка в AppData проверялась на существование..
 

Mailchik

Старожил
Проверенный
Tolyak26, код
 

Sal'vador

Мимокрокодил
Что это может быть и как от этого избавиться?
 

LexBell

Борода
Супер модератор
Sal'vador, абсолютно все, что угодно. правила читаем. для того, что-бы задавать вопрос, нужно предоставить хоть какую-то информацию, из которой можно сформировать ответ. я уверен, что это где-то в правилах есть. скрин ошибки не несет никакой информации. вот скрипт и файлы могут пролить свет.
 

urban

Старожил
Sal'vador, может быть из-за кривого скрипта где нету deinitialize wizard,или ещё что,скинь скрипт
 
Последнее редактирование:

Tolyak26

Новичок
Mailchik, Папка не удаляется и окно с вопросом о удалении папки не возникает.. Права на удаление папки есть и папка НЕ используется какой-либо программой
 

Mailchik

Старожил
Проверенный
Tolyak26, только что проверил, всё удаляется. Окно с вопросом не возникает, так как в коде нет этого действия. новый код:
 

Shift85

Старожил
Как убрать надпись с кнопки наложенной через ботву в формате png?
 

vint56

Ветеран
Проверенный
Shift85
procedure SetStateNewButtons;
begin
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;
 

Carlos

Участник
Модератор
Доброго времени суток.
Такой вопрос: есть скрипт авторана.
Как можно изменить код установки второго exe на открытие txt файла.

Код:
//#define Setup2 ; 2-я кнопка для установки 2-ой игры, авторан расчитан для 1-ой установки игры и для 2-х установки игры.
#ifdef Setup2
#define Setuppath2    "{src}\Setup2.exe"       ; Exe для поиска / запуска setup2
#define GameExe2      "Setup2.exe"             ;----------------^
#endif

begin
#ifdef Setup2
  sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
  AutoRun.Hide;
  Exec(ExpandConstant('{#Setuppath1}'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrCode);
  AutoRun.Show;
#else
#ifdef Setup2
procedure InstallBtnClick2(hBtn:HWND);
var
  res: Integer;
  ErrCode:integer;
begin
  sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
  AutoRun.Hide;
  Exec(ExpandConstant('{#Setuppath2}'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrCode);
  AutoRun.Show;
end;
#endif

#ifdef Setup2
 InstallBtn2:=BtnCreate(AutoRun.Handle,ScaleX(65),ScaleY(12),ScaleX(198),ScaleY(36),ExpandConstant('{tmp}\Button.png'),3,False);
  BtnSetEvent(InstallBtn2,BtnClickEventID,WrapBtnCallback(@InstallBtnClick2,1));
  BtnSetEvent(InstallBtn2,BtnMouseEnterEventID,WrapBtnCallback(@BtnEnter,1));
  BtnSetFontColor(InstallBtn2,$555555,$454545,$555555,$B6B6B6);
  BtnSetText(InstallBtn2,'Установить Dirt 2');
  BtnSetCursor(InstallBtn2,GetSysCursorHandle(32649));
#endif
Или добавить отдельную кнопку
 

ATTACUE

Новичок
Carlos,
И всего то)
Заменяешь все setup2.exe на readme.txt и имя кнопки "открыть readme".
Часть кода для изменения как раз предоставлено верно.
Только не забудь раскомментировать вверху #define setup2
Вроде все)
Код:
#define Setup2 ; 2-я кнопка для установки 2-ой игры, авторан расчитан для 1-ой установки игры и для 2-х установки игры.
#ifdef Setup2
#define Setuppath2    "{src}\readme.txt"       ; Exe для поиска / запуска readme
#define GameExe2      "readme.txt"             ;----------------^
#endif

begin
#ifdef Setup2
  sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
  AutoRun.Hide;
  Exec(ExpandConstant('{#Setuppath1}'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrCode);
  AutoRun.Show;
#else
#ifdef Setup2
procedure InstallBtnClick2(hBtn:HWND);
var
  res: Integer;
  ErrCode:integer;
begin
  sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
  AutoRun.Hide;
  Exec(ExpandConstant('{#Setuppath2}'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrCode);
  AutoRun.Show;
end;
#endif

#ifdef Setup2
 InstallBtn2:=BtnCreate(AutoRun.Handle,ScaleX(65),ScaleY(12),ScaleX(198),ScaleY(36),ExpandConstant('{tmp}\Button.png'),3,False);
  BtnSetEvent(InstallBtn2,BtnClickEventID,WrapBtnCallback(@InstallBtnClick2,1));
  BtnSetEvent(InstallBtn2,BtnMouseEnterEventID,WrapBtnCallback(@BtnEnter,1));
  BtnSetFontColor(InstallBtn2,$555555,$454545,$555555,$B6B6B6);
  BtnSetText(InstallBtn2,'Открыть ReadMe');
  BtnSetCursor(InstallBtn2,GetSysCursorHandle(32649));
#endif
 
Последнее редактирование:

ATTACUE

Новичок
ShellExec('open', ExpandConstant('{#Setuppath2}'), '', '', SW_SHOW, ewNoWait, ResultCode)
За вместо ResultCode поставь errcode или что там у тебя, так как пишу по памяти
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху