Devils Night
Ветеран
Такой вопрос: насчёт #define AppID, я что-то пробовал вставить AppId={{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24} вместо AppId=TheBestAppIdEverMade, компилится нормально, но выдаёт ошибку: Exception Internal error: Failed to pause "reg" constant, где грабли?
Вообще расчитываю на #define AppID "{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24}"
Вот:
P.S Компилится нормально, но инсталлятор не запускается.
[HR][/HR]
Katarn, По моему YURSHAT уже выкладывал несколько страниц назад, не оно?!
Вообще расчитываю на #define AppID "{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24}"
Вот:
Код:
#define AppID "{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24}"
#define AppName "My Program"
#define AppExeName "MyProg.exe"
#define InExe "setup.exe"
#define UnExe "unins000.exe"
[Setup]
AppId={{#AppID}
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
[Files]
Source: hl2.exe; DestDir: {app}\common\half-life 2; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname
[ Code]
var
Run_Button: TNewButton;
Del_Button: TNewButton;
AppPath, UninsPath: string;
ResultCode: Integer;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1') then
Confirm:= False;
end;
procedure UninstallButtonClick(Sender: TObject);
begin
Exec(UninsPath, '', '' , SW_SHOW, ewNoWait, ResultCode);
SendMessage(WizardForm.CancelButton.Handle, $00F5, 0, 0);
end;
procedure RunButtonClick(Sender: TObject);
begin
Exec(AppPath + '\common\half-life 2\hl2.exe', '', '', SW_SHOW, ewNoWait, ResultCode);
SendMessage(WizardForm.CancelButton.Handle, $00F5, 0, 0);
end;
procedure InitializeWizard;
begin
AppPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|}'));
UninsPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,UninstallString|}'));
{ Run_Button }
Run_Button := TNewButton.Create(WizardForm);
with Run_Button do
begin
Name := 'Run_Button';
Parent := WizardForm;
Left := ScaleX(240);
Top := ScaleY(327);
Width := ScaleX(75);
Height := ScaleY(23);
Caption := 'Запустить';
OnClick := @RunButtonClick;
Enabled := FileExists(AppPath + '\common\half-life 2\hl2.exe');
end;
{ Del_Button }
Del_Button := TNewButton.Create(WizardForm);
with Del_Button do
begin
Name := 'Del_Button';
Parent := WizardForm;
Left := ScaleX(153);
Top := ScaleY(327);
Width := ScaleX(75);
Height := ScaleY(23);
Caption := 'Удалить';
OnClick := @UninstallButtonClick;
end;
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1') then
MsgBox('Программа {#AppName} уже установлена',mbError,MB_OK);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1') and (CurPageId=wpWelcome)
then
begin
Run_Button.Visible := True;
Del_Button.Visible := True;
WizardForm.NextButton.Caption := 'Продолжить';
end
else
begin
Run_Button.Visible := false;
Del_Button.Visible := false;
end;
end;
[HR][/HR]
Katarn, По моему YURSHAT уже выкладывал несколько страниц назад, не оно?!
В принципе, много, много всего, можно скачать с сайта RESTOOLS, это факт, что я в первую очередь и сделал, ну а какой то эксклюзивчик, можно найти на этом сайте!скачивать я пока не могу...
Последнее редактирование: