Поэтому буду писать сюда идеи..прошу помочь знающих в их реализации:)
[user] переходи на Inno .Поставь DefaultDirName={reg:HKLMSOFTWAREValveSteam,InstallPath|{pf}InstallPath}
и будет находить путь папки стима,используя реестр..
вот примерный скрипт на inno для SteamUP
[spoiler=""см""]
Код: Выделить всё
[Setup]
SourceDir=.
OutputDir=Setup
AppName=SteamUP
AppVerName=SteamUP
AppVersion=SteamUP
AppPublisher=cs.rin.ru [compile by artemon]
AppCopyright=cs.rin.ru [compile by artemon]
AppPublisherURL=cs.rin.ru
AppSupportURL=cs.rin.ru
AppUpdatesURL=cs.rin.ru
DefaultDirName={reg:HKLMSOFTWAREValveSteam,InstallPath|{pf}InstallPath}
DefaultGroupName=SteamUP
AllowNoIcons=yes
InfoBeforeFile=H:installsteamupREADME SteamUp!.TXT
OutputBaseFilename=setup
WizardImageFile=H:installWizModernImage-steaml.bmp
WizardSmallImageFile=H:installWizModernSmallImagesteam.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/fast
SlicesPerDisk=1
SetupIconFile=H:installSteamUpICO.ico
[Languages]
Name: "russian"; MessagesFile: "compiler:LanguagesRussian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
[Files]
Source: "H:installsteamup*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Icons]
Name: "{group}SteamUP"; Filename: "{app}SteamUp!.exe"; WorkingDir: "{app}";
Name: "{userdesktop}SteamUP"; Filename: "{app}SteamUp!.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}{cm:UninstallProgram,SteamUP}"; Filename: "{uninstallexe}"
[Run]
Description: "{cm:LaunchProgram, SteamUP}"; Filename: "{app}SteamUp!.exe"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent unchecked
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[Code]
const
dURL=2;
var
URLLabel,URLLabelShadow:TLabel;
procedure URLLabelClick(Sender: TObject);
var
ErrorCode:integer;
begin
ShellExec('open','cs.rin.ru','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top+dURL;
URLLabel.Left:=URLLabel.Left+dURL;
URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
URLLabel.Font.Color:=clBlue;
URLLabelShadow.Visible:=False;
end;
procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top-dURL;
URLLabel.Left:=URLLabel.Left-dURL;
URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
URLLabel.Font.Color:=clMaroon;
URLLabelShadow.Visible:=True;
end;
procedure InitializeWizard;
begin
URLLabelShadow:=TLabel.Create(WizardForm);
with URLLabelShadow do begin
Top:=ScaleY(331);
Left:=ScaleX(25);
Caption:='cs.rin.ru';
AutoSize:=True;
Parent:=WizardForm;
Transparent:=True;
Font.Color:=$969696;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
end;
URLLabel:=TLabel.Create(WizardForm);
with URLLabel do begin
Top:=ScaleY(331)-dURL;
Left:=ScaleX(25)-dURL;
Caption:='cs.rin.ru';
AutoSize:=True;
Parent:=WizardForm;
Cursor:=crHand;
Transparent:=True;
Font.Color:=clMaroon;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
BringToFront;
OnClick:=@URLLabelClick;
OnMouseDown:=@URLLabelMouseDown;
OnMouseUp:=@URLLabelMouseUp;
end;
WizardForm.Position:=poScreenCenter;
end;
Вот пока у меня несколько вопросов по Inno,может кто поможет..
1)как сделать запрос на удаление или неудаление файлов/папки (при деинсталяции)?
2)как применить скин (вроде бы можно через библиотеку для нсиса?)?
3)и вопрос посложнее..можно ли в инсталятор встроить кнопочку(расположить например в правом нижнем углу) для
отключения звука в инсталяторе,если в инстал включена музыка..(плеер не предлогать..хочется одну кнопу..вкл и выкл,и чтоб не появлялось отдельно от окна инстала..ну конечно если это возможно..)
з.ы. пока всё prankster