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

  • Автор темы Автор темы Shegorat
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
Shift85
Как сделать проверку через реестр установлена игра или нет и если установлена появлялось сообщение типа "Игра уже установлена" "удалить да нет"

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppExeName "MyProg.exe"

[Setup]
AppID=My Program
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}

Код:
function UninstallMyApp(): Boolean;
var
   Buff: String;
   i: Integer;
begin
   Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
   if not Result then Result := not FileExists(RemoveQuotes(Buff));
   if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?', mbError, MB_YESNO) = IDYES then
   try
       Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
   finally
       Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
       if not Result then MsgBox('Удаление завершилось неудачей!', mbError, MB_OK);
   end;
end;

function InitializeSetup(): Boolean;
begin
   Result := UninstallMyApp();
end;[/SPOILER]
 
Shift85,
Код:
WizardForm.ComponentsList.Font.Name := 'MS Sans Serif';
ты будешь смеяться, но так. Ну или отключить сглаживание ClearTipe для шрифта компонент-листа, чтоб не менять шрифт:
[SOURCE="iss"]type
HFONT = LongWord;

function CreateFont(nHeight, nWidth, nEscapement, nOrientaion, fnWeight: Integer;
fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision,
fdwClipPrecision, fdwQuality, fdwPitchAndFamily: DWORD; lpszFace: PAnsiChar): HFONT; external 'CreateFontA@gdi32.dll stdcall delayload';

procedure NewFont(Font : TFont);
begin
Font.Handle := CreateFont(Font.Height, 0, 0, 0, 400, 0, 0, 0,0, 0, 0,0, 3, Font.Name); // предпоследний параметр поиграться от 0 до 4-х, не помню, чего там нужно ставить
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('BGImage.bmp');
BGImgFile := ExpandConstant('{tmp}\BGImage.bmp');
with WizardForm.ComponentsList do
begin
LoadBGBmpFromFile(BGImgFile, WizardForm.ComponentsList.Left, WizardForm.ComponentsList.Top);
NewFont(font);
end;
end;[/SOURCE]
 
Приветствую! Может кто-нибудь дать пример текстурирования isdone-прогрессбара через ботву? И ещё вопросик: можно ли к созданной на ботве кнопке применить ModalResult := mrOk;
 
[STRIKE]Подскажите, как через ботву перерисовать это окно[/STRIKE] ??
UPD: Все, сам понял.
 
Последнее редактирование:
Приветствую! Может кто-нибудь дать пример текстурирования isdone-прогрессбара через ботву?
http://rghost.ru/51776182
И ещё вопросик: можно ли к созданной на ботве кнопке применить ModalResult := mrOk;
Код:
procedure TestButtonClick(hBtn: HWND);
begin
  TestForm.ModalResult := mrOK;
end;

BtnSetEvent(TestButton, BtnClickEventID, WrapBtnCallback(@TestButtonClick, 1));
 
Привет всем столкнулся с такой проблемой есть код выхода на ботве на версий ботвы 0.9.1 121 и модуль весит 14,4 КБ выход нормально работает без проблем решил обновить dll и модуль botva2.dll теперь версий 0.9.7.151 модуль весить 16,9 КБ но теперь выходит ошибка
вот скрин
Сами кнопки работают нормально ошибка только при выходе из установшика
 
Последнее редактирование:
При использовании функции CreateFont возникла проблема.
Код:
//  Form.Font.Name := 'Arial';
  Form.Font.Handle := CreateFont(Form.Font.Height, 0, 0, 0, 1000, 0, 0, 0,0, 0, 3,0, 0, Form.Font.Name);
при использование шрифта (любого) (Form.Font.Name) при отображении русских символов вылазиют кракозябры. в msdn про функцию прочел, но не понял где изменять чтобы работало.
 
vint56, Пробуй заменить http://rghost.ru/52025861 вес 37,0 версий 0.9.7.151

sergey3695, Предпоследний парамет попробуй...
 
Последнее редактирование:
при использование шрифта (любого) (Form.Font.Name) при отображении русских символов вылазиют кракозябры. в msdn про функцию прочел, но не понял где изменять чтобы работало.
Попробуй прописать RUSSIAN_CHARSET в fdwCharSet (9-й параметр).
Код:
const
  RUSSIAN_CHARSET = 204;
Хотя я скомпилил без этого, и крякозябр нет.
 
vint56
BtnSetEvent(CloseBtn,BtnClickEventID,WrapBtnCallback(@CloseBtnClick,4));
BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnClick,4));
>>
BtnSetEvent(CloseBtn,BtnClickEventID,WrapBtnCallback(@CloseBtnClick,1));
BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnClick,1));
 
Как сделать так, чтобы перед установкой можно было выбрать удалять файлы или нет.
jQm4e.jpg
 
Мне тут код давали, вот он Код, как сделать чтобы проверялось две папки "Skins" и "Data", а чекбокс был один?
 
Последнее редактирование:
DICI BF,
Код:
[Components]
Name: Skins; Description: Установить скины; Check: DirExists(ExpandConstant('{src}\Skins')) and DirExists(ExpandConstant('{src}\Data'));
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху