Ru-Board.club
← Вернуться в раздел «Программы»

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

Автор: noiseless
Дата сообщения: 13.03.2009 13:21
WinstAn70
Про ЗлогоДеда тут наслышаны
Спасибо! Будет пробовать.
Автор: skeptik_vdm
Дата сообщения: 13.03.2009 14:56
А как сделать чтобы в начале распаковывался архив а потом уже копировались остальные файлы??
Автор: noiseless
Дата сообщения: 13.03.2009 15:18
skeptik_vdm
В шапке есть "Сборник вопросов", а там см. пункт про установку Firebird Переделать под твои нужды не составит труда.

WinstAn70
Нет, это не то, что имелось в виду. Посмотри пример с архивами *.7z. Хотелось аналогичного решения. Эх....
Автор: skeptik_vdm
Дата сообщения: 13.03.2009 15:30
noiseless
Спасибо за наводку!!!
Автор: WinstAn70
Дата сообщения: 13.03.2009 15:32
noiseless
Что именно не то,все то если сообразишь,ваша причина в том что вы не хотите даже подумать. Подай вам на тарелочки с голубой каемочкой. Я реализовал как у автора Кода и все нормально работает!
Автор: skeptik_vdm
Дата сообщения: 13.03.2009 15:44
В общем хочу сделать так допустим инсталлятор копирует архив и начинается извлечение потом он удаляется потом копируется другой потом идет извлечение далее удаление а потом идет копирование остальных файлов не сжатых архивом!!!
Автор: WinstAn70
Дата сообщения: 13.03.2009 16:43
skeptik_vdm
Я же выше писал код там есть строчка для запуска архива. А удалять можно через cmd!
Автор: skeptik_vdm
Дата сообщения: 13.03.2009 16:53
За скрипт отдельное спасибо!!!Но он запускается в конце установки а я хочу так как я описал выше!!!Скопировал на HDD извлек и удалил!!!
Автор: noiseless
Дата сообщения: 13.03.2009 17:16
WinstAn70
По твоему предложенному сценарию получается лажа - прогрессбар перемещается по кол-ву распакованных архивов и только. А надо чтобы он показывал именно ход распаковки. Так что понты можно тут не кидать, если в лом помочь...
Автор: WinstAn70
Дата сообщения: 13.03.2009 17:18
skeptik_vdm
Закинь так архивы в папку потом собери инстал запусти через [run] потом после каждого архива напиши удаление через командную строку!
noiseless
Пиши сам код если не нравится.
Автор: Yoldosh
Дата сообщения: 13.03.2009 17:24
можете дать скрипт как на картинка http://pic.ipicture.ru/uploads/090220/ja627VS340.jpg
Автор: noiseless
Дата сообщения: 13.03.2009 17:52
WinstAn70
Вообще-то здесь именно просят помочь если не получается своими силами, что собственно и делал. А не пишут "сделай сам". Не хочешь помогать, не надо тогда вообще ничего писать.
Автор: WinstAn70
Дата сообщения: 13.03.2009 17:59
Yoldosh
Чего нет того нет,есть что то наподобие! тока нет значка + музыка в фоне!
Автор: skeptik_vdm
Дата сообщения: 13.03.2009 18:04
Yoldosh
У меня есть но уже по моей основе сделан!!!

Добавлено:
Yoldosh
У меня есть но уже по моей основе сделан!!!
Автор: WinstAn70
Дата сообщения: 13.03.2009 18:56
noiseless
Чего как маленький. Что просил то и дал!
skeptik_vdm
Интересно может поделишься!? Посмотреть,у меня есть наработки щя скрещиваю один с другим малость не получается. уже третий день бьюсь!



Автор: skeptik_vdm
Дата сообщения: 13.03.2009 19:21
WinstAn70
Да какой базар конечно!!!!Ну он точно такой же как на картинке т.е. использую этиже картинки!!!!
[more=Код]
[Setup]
AppName=Mirror's Edge
AppVerName=Mirror's Edge
DefaultDirName={pf}\EA Games\Mirror's Edge
OutputDir=Out
DefaultGroupName=EA Games\Mirror's Edge
WizardImageFile=skin\WizardImageFile.bmp
WizardSmallImageFile=skin\WizardSmallImageFile.bmp
UninstallFilesDir={app}\uninstall
InternalCompressLevel=ultra64
SolidCompression=true
Compression=lzma/ultra64
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64 x86
RestartIfNeededByRun=false
DisableReadyPage=true
UsePreviousTasks=false
DirExistsWarning=no
UsePreviousAppDir=false
DisableProgramGroupPage=true
UsePreviousGroup=false
UsePreviousSetupType=false
FlatComponentsList=false
DiskSpanning=true
DiskClusterSize=1024
DiskSliceSize=1566000000
AppID={{AEDBD563-24BB-4EE3-8366-A654DAC2D988}

[LangOptions]
WelcomeFontName=Tahoma
WelcomeFontSize=11

[Icons]
Name: {group}\Удалить игру; Filename: {uninstallexe}
Name: {group}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\
Name: {group}\Readme; Filename: {app}\Support\readme.ru.txt
Name: {group}\Техническая поддержка; Filename: {app}\Support\EA Help\Electronic_Arts_Technical_Support.htm
Name: {group}\Веб-сайт Mirror's Edge™; Filename: http://www.mirrorsedge.com/
Name: {group}\Поиск обновлений Mirror's Edge™; Filename: http://www.mirrorsedge.com/DLC
Name: {commondesktop}\Mirror's Edge™; Filename: {app}\Binaries\MirrorsEdge.exe; WorkingDir: {app}\Binaries\; Check: MakeDesktopIcon

[UninstallDelete]
Name: {app}\; Type: filesandordirs

[Run]
Filename: {src}\DirectX\dxsetup.exe; Parameters: /silent; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\vcredist_x86.exe; Parameters: /Q; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop
Filename: {src}\Redistributables\PhysX_SystemSoftware.exe; Parameters: /quiet; StatusMsg: Идет установка дополнительных программ...; Check: InstallDop

[Registry]
Root: HKLM; SubKey: SOFTWARE\EA Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: CD Drive; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ProductName; ValueData: Mirror's Edge™; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Folder; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Install Dir; ValueData: {app}\; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Installed From; ValueData: {drive:...}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Locale; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Language; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Patch URL; ValueData: http://www.mirrorsedge.com/DLC; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Product GUID; ValueData: {{AEDBD563-24BB-4EE3-8366-A654DAC2D988}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Suppression Exe; ValueData: ; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Registration; ValueData: Software\Electronic Arts\EA Games\Mirror's Edge\ergc; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: ContentID; ValueData: mirrors_edge_eu; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge; ValueType: string; ValueName: Version; ValueData: 1.0.1.0; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: DisplayName; ValueData: Mirror's Edge; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: dword; ValueName: Language; ValueData: $00000010; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: LanguageName; ValueData: Russian; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\EA Games\Mirror's Edge\1.0; ValueType: string; ValueName: ProgramGroup; ValueData: {commonprograms}\{groupname}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games; ValueType: none; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Core\Installed Games\mirrors_edge_eu; ValueType: string; ValueName: lang; ValueData: ru; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\EA Games\Mirror's Edge\ergc; ValueType: string; ValueName: ; ValueData: QXJSKREYVVPG6VVDJRLD; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\EA DICE\Mirror's Edge Patch\1.0.1.0; Flags: uninsdeletekey

[Messages]
WizardSelectDir=Выбор папки установки и дополнительных задач
SelectDirDesc=Выберите целевую директорию и дополнительные задачи, которые должны выполниться во время установки
SelectDirBrowseLabel=Нажмите «Установить», чтобы начать установку. Если Вы хотите выбрать другую папку, нажмите «Обзор».

[Code]
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
DesktopIcon,Dop:TCheckBox;
ResultStr: string;
ResultCode: Integer;
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel,FreeSpaceLabel: TLabel;

Function MakeDesktopIcon:Boolean;
begin
Result:=DesktopIcon.Checked;
end;

Function InstallDop:Boolean;
begin
Result:=Dop.Checked;
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';
end;

procedure InitializeWizard();
begin
WizardForm.Caption:='Программа установки игры "Mirrors Edge"';
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage.Height := 313;
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
WizardForm.FileNameLabel.Visible:=False;
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.StatusLabel.Top:=ScaleY(80);
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clBlack;

WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clBlack;

WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.WizardBitmapImage2.Height := 313;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clBlack;

FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clBlack;

FLabel2.Caption := 'Программа установлена на Ваш компьютер.' #13#13
'Нажмите «Завершить», чтобы выйти из программы установки.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(400);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;
begin
DesktopIcon:=TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Добавить ярлык на рабочий стол'
Left:=ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True
end;
end;
begin
dop := TCheckBox.Create(WizardForm);
with Dop do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Установить дополнительные программы (рекомендуется)';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+55;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
end;
begin
NeedSize :=7300;
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;end;

procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
begin
if CurPageID=wpSelectDir then begin
WizardForm.NextButton.Caption:='Установить';
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;end;end;
[/more]
Только он малость не закончен там не хватает удаления игровых сохранений и регистрации в GameExplorer
Автор: Yoldosh
Дата сообщения: 14.03.2009 17:13
Можете помочь как ето регистрировать через [Registry]
Код: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{329BC3B2-E112-4634-BC43-E11AF6A188A6}]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{B939CE71-99A5-4B37-B657-3C4E0DD4CCD9}]
"GDFBinaryPath"="E:\\Games\\Prince\\Prince of Persia.exe"
"GameInstallPath"="E:\\Games\\Prince\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{329BC3B2-E112-4634-BC43-E11AF6A188A6}]
"GDFBinaryPath"="E:\\Games\\Prince\\Prince of Persia.exe"
"GameInstallPath"="E:\\Games\\Prince\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft]

[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft\Prince of Persia]

[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft\Prince of Persia\1.0]

[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft\Prince of Persia\GameUpdate]
"execPath"="E:\\Games\\Prince\\Prince of Persia.exe"
"info"="08a0f1c01d540ee143f7ee48a91898fa"
"installdir"="E:\\Games\\Prince\\"
"language"="us"

[HKEY_LOCAL_MACHINE\SOFTWARE\Ubisoft\Prince of Persia]
"Executable"="E:\\Games\\Prince\\PrinceOfPersia_Launcher.exe"
"InstallDir"="E:\\Games\\Prince\\"
"Language"="English"

[HKEY_USERS\S-1-5-21-1202660629-1715567821-1417001333-500\Software\Ubisoft\Prince of Persia]

[HKEY_USERS\S-1-5-21-1202660629-1715567821-1417001333-500\Software\Ubisoft\Prince of Persia\1.0]

[HKEY_USERS\S-1-5-21-1202660629-1715567821-1417001333-500\Software\Ubisoft\Prince of Persia\1.0\Engine]
"LNG_Language"=dword:00000001
Автор: Studio13 OutlaW
Дата сообщения: 14.03.2009 17:47
Как сделать, чтобы не создавался файл деисталяции приложения?
Автор: csstalkers
Дата сообщения: 14.03.2009 17:49
Как сделать чтобы при инсталяции индикатор установки уходил в правый бок вниз.
Как на картинке: http://imageshost.ru/links/c10d2d9f2501a96dd1aebafa08bd7a60
Автор: skeptik_vdm
Дата сообщения: 14.03.2009 18:47
csstalkers
В шапке есть "Сборник вопросов" там эта тема описана!!!

Добавлено:
Studio13 OutlaW
[Setup]
Uninstallable=no

Автор: DeKaNszn
Дата сообщения: 14.03.2009 22:13
Yoldosh [more=вот][no][Registry]
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{{B939CE71-99A5-4B37-B657-3C4E0DD4CCD9}; ValueType: string; ValueName: GDFBinaryPath; ValueData: E:\Games\Prince\Prince of Persia.exe
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{{B939CE71-99A5-4B37-B657-3C4E0DD4CCD9}; ValueType: string; ValueName: GameInstallPath; ValueData: E:\Games\Prince\
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{{329BC3B2-E112-4634-BC43-E11AF6A188A6}; ValueType: string; ValueName: GDFBinaryPath; ValueData: E:\Games\Prince\Prince of Persia.exe
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{{329BC3B2-E112-4634-BC43-E11AF6A188A6}; ValueType: string; ValueName: GameInstallPath; ValueData: E:\Games\Prince\
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia\GameUpdate; ValueType: string; ValueName: execPath; ValueData: E:\Games\Prince\Prince of Persia.exe
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia\GameUpdate; ValueType: string; ValueName: info; ValueData: 08a0f1c01d540ee143f7ee48a91898fa
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia\GameUpdate; ValueType: string; ValueName: installdir; ValueData: E:\Games\Prince\
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia\GameUpdate; ValueType: string; ValueName: language; ValueData: us
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia; ValueType: string; ValueName: Executable; ValueData: E:\Games\Prince\PrinceOfPersia_Launcher.exe
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia; ValueType: string; ValueName: InstallDir; ValueData: E:\Games\Prince\
Root: HKLM; SubKey: SOFTWARE\Ubisoft\Prince of Persia; ValueType: string; ValueName: Language; ValueData: English
Root: HKU; SubKey: S-1-5-21-1202660629-1715567821-1417001333-500\Software\Ubisoft\Prince of Persia\1.0\Engine; ValueType: dword; ValueName: LNG_Language; ValueData: $00000001[/no][/more]
Автор: kombat 77
Дата сообщения: 14.03.2009 22:46
DeKaNszn Yoldosh
[more=?]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{329BC3B2-E112-4634-BC43-E11AF6A188A6}]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{B939CE71-99A5-4B37-B657-3C4E0DD4CCD9}]
"GDFBinaryPath"="E:\\Games\\Prince\\Prince of Persia.exe"
"GameInstallPath"="E:\\Games\\Prince\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX\GamesToFindOnWindowsUpgrade\{329BC3B2-E112-4634-BC43-E11AF6A188A6}]
"GDFBinaryPath"="E:\\Games\\Prince\\Prince of Persia.exe"
"GameInstallPath"="E:\\Games\\Prince\\"

[/more]
Этими ключами занимается "GameuxInstallHelper.dll". Создаются под ХР, под Вистой этих ключей не видел.
Вывод (ИМХО) использовать "GameuxInstallHelper.dll".
Автор: msatmb
Дата сообщения: 15.03.2009 01:16
Подмогните еще раз в скрещивании Необходимо скрестить [more=вот это][no][Files]
Source: D:\MyInno_Script\vtv\Outfront\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: {group}\В тылу врага; Filename: {app}\SOLDIERS.EXE; WorkingDir: {app}
Name: {group}\Руководство; Filename: {app}\soldiers_man\index.html; WorkingDir: {app}
Name: {group}\{cm:UninstallProgram,В тылу врага}; Filename: {uninstallexe}; WorkingDir: {app}
Name: {userdesktop}\В тылу врага; Filename: {app}\SOLDIERS.EXE; WorkingDir: {app}; Check: MakeDesktopIcon

[UninstallDelete]
Type: filesandordirs; Name: {app}

[Code]
const
NeedSize = 3000;

var
DesktopIcon: TCheckBox;
PageNameLabel, PageDescriptionLabel: TLabel;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal;

function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.Checked;
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Свободно на выбранном диске: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else
FreeSpaceLabel.Caption := 'Свободно на выбранном диске: ' + IntToStr(FreeMB)+ ' MB';
begin
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled:=false;
end else
WizardForm.NextButton.Enabled:=true;
end;
end;

procedure InitializeWizard();
begin
DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent := WizardForm.SelectProgramGroupPage;
Caption := 'Добавить ярлык на рабочий стол';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(200);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
Font.Style := [fsBold];
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(275);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
begin
WizardForm.DiskSpaceLabel.Hide;

NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Требуется для установки: 3 GB';
end;

FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;

WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled:=False
end;
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
begin
WizardForm.Position:=poScreenCenter;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
MsgBox('Игра ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK);
end;[/no][/more]
вот с
[more=этим][no][Files]
Source: "C:\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\01-OVERSEER-Doomsday.mp3"; DestDir: "{tmp}"; Flags: dontcopy

[Code]
//большее указание смотрите в дельфийских исходниках в архиве с библиотекой
сonst
BASS_SAMPLE_LOOP = 4; //повторение

type
HSTREAM = DWORD; //тип звукового потока

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

procedure InitializeWizard();
var
Name1: string;
    i: Integer;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('01-OVERSEER-Doomsday.mp3');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\01-OVERSEER-Doomsday.mp3');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
    begin
BASS_ChannelPlay(i, True);
end;
end;
end;
procedure DeInitializeSetup();
begin
BASS_Stop(); //нужно для остановки проигрывания
BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;[/no][/more]
Вроде при компилировании ошибок не выдается, зато и не инсталлируется
Автор: DeKaNszn
Дата сообщения: 15.03.2009 03:15
msatmb [more=пробуй][no][Files]
Source: C:\BASS.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\01-OVERSEER-Doomsday.mp3; DestDir: {tmp}; Flags: dontcopy
Source: D:\MyInno_Script\vtv\Outfront\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: {group}\В тылу врага; Filename: {app}\SOLDIERS.EXE; WorkingDir: {app}
Name: {group}\Руководство; Filename: {app}\soldiers_man\index.html; WorkingDir: {app}
Name: {group}\{cm:UninstallProgram,В тылу врага}; Filename: {uninstallexe}; WorkingDir: {app}
Name: {userdesktop}\В тылу врага; Filename: {app}\SOLDIERS.EXE; WorkingDir: {app}; Check: MakeDesktopIcon

[UninstallDelete]
Type: filesandordirs; Name: {app}

[Code]
type
HSTREAM = DWORD; //тип звукового потока

const
NeedSize = 3000;
BASS_SAMPLE_LOOP = 4; //повторение

var
DesktopIcon: TCheckBox;
PageNameLabel, PageDescriptionLabel: TLabel;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal;

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.Checked;
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Свободно на выбранном диске: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else
FreeSpaceLabel.Caption := 'Свободно на выбранном диске: ' + IntToStr(FreeMB)+ ' MB';
begin
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled:=false;
end else
WizardForm.NextButton.Enabled:=true;
end;
end;

procedure InitializeWizard();
var
Name1: string;
i: Integer;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('01-OVERSEER-Doomsday.mp3');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\01-OVERSEER-Doomsday.mp3');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
begin
BASS_ChannelPlay(i, True);
end;
end;
DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent := WizardForm.SelectProgramGroupPage;
Caption := 'Добавить ярлык на рабочий стол';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end;
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(200);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
Font.Style := [fsBold];
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(275);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clWhite;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
begin
WizardForm.DiskSpaceLabel.Hide;

NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(198);
Width := ScaleX(209);
Height := ScaleY(13);
Caption := 'Требуется для установки: 3 GB';
end;

FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(216);
Width := ScaleX(209);
Height := ScaleY(13);
end;

WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then
if FreeMB < NeedSize then
begin
WizardForm.NextButton.Enabled:=False
end;
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
begin
WizardForm.Position:=poScreenCenter;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
MsgBox('Игра ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK);
end;

procedure DeInitializeSetup();
begin
BASS_Stop(); //нужно для остановки проигрывания
BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;[/no][/more]
Автор: Yoldosh
Дата сообщения: 15.03.2009 08:03
[more]
procedure InitializeWizard();
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := ScaleY(313);

WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clRed;
WLabel1.ShowAccelChar := False;
WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;

WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clRed;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;

WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := ScaleY(313);

FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clRed;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;

FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clRed;
FLabel2.ShowAccelChar := False;
FLabel2.Caption := WizardForm.FinishedLabel.Caption;
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
end;[more] Почему на последей старнице толька * стоит помогите кто нибудь

Добавлено:
как зделать два прогресс бара и штобы второй прогрес бар двигалься или расширать стандартный прогрес бар

Добавлено:
[more]
procedure InitializeWizard();
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := WizardForm.Width;
WizardForm.WizardBitmapImage.Height := ScaleY(313);

WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 12;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clRed;
WLabel1.ShowAccelChar := False;
WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;

WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clRed;
WLabel2.ShowAccelChar := False;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;

WizardForm.WizardBitmapImage2.Width := WizardForm.Width;
WizardForm.WizardBitmapImage2.Height := ScaleY(313);

FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 12;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clRed;
FLabel1.ShowAccelChar := False;
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Captio
Код: [/code]
Код:
Автор: msatmb
Дата сообщения: 15.03.2009 11:43
DeKaNszn - спасибо. Долго сидел разбирался почему твой скрипт работает, а у меня нет и нашел только единственное отличие. У тебя

Код: [Files]
Source: "D:\MyInno_Script\vtv\scripts\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "D:\MyInno_Script\vtv\scripts\main_theme.mp3"; DestDir: "{tmp}"; Flags: dontcopy
Source: D:\MyInno_Script\vtv\Outfront\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Автор: clemenco
Дата сообщения: 15.03.2009 15:32
Нужна помощь, есть код, выкладывался недавно.
Но у меня он не работает, ругается на неизвестный идентификатор page в 29 строке.[more][Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}
DisableProgramGroupPage=yes

[Files]
Source: text.txt; DestDir: {app}

[Code]
var
Button: TButton;

procedure ButtonOnClick(Sender: TObject);
var
Dir: String;
begin
if BrowseForFolder(SetupMessage(msgBrowseDialogLabel), Dir, False) then
Page.Values[3]:=Dir
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID = wpSelectDir then
begin
Page.Values[3]:=WizardForm.DirEdit.Text
end;
if CurPageID = Page.ID then
begin
DeleteFile(ExpandConstant('{src}\text.txt'))
SaveStringToFile(ExpandConstant('{src}\text.txt'), Page.Values[3], True)
end
end;

procedure InitializeWizard();
begin
Button:=TButton.Create(WizardForm)
Button.SetBounds(342, 170, 75, 23)
Button.Caption:=SetupMessage(msgButtonBrowse)
Button.OnClick:=@ButtonOnClick
Button.Parent:=Page.Surface
end;[/more]
Или может у кого есть другой вариант передачи пути установки в cmd, bat или txt файл.
Автор: Studio13 OutlaW
Дата сообщения: 15.03.2009 16:44
Как сделать чтобы страница выбора установки приложения появлялась только, если нет ключа в реестре. Мне вообще нужно только окно прогресбара...

Я делал через:

[Setup]
DefaultDirName={code:FunctionRegPath|code:FunctionDirPath}
DisableDirPage=yes

Делал и через
DefaultDirName={reg:HKLM\SOFTWARE\Electronic Arts\Electronic Arts\1313,Install Dir}
DisableDirPage=yes
но если нет ключа, программа выдает ошибку, что надо выбрать путь...и закрывается


Потом пытался задавать функции, но у меня так и не че не получилось....

Может есть другой способ?
Автор: kombat 77
Дата сообщения: 15.03.2009 17:08
Studio13 OutlaW

Цитата:
Может есть другой способ?


Конечно есть, например [more=такой]

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID = wpSelectDir then
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\My Program') then
Result := True;
end;

[/more]
Автор: viktor9
Дата сообщения: 15.03.2009 18:30
А как можно сделать чтобы при установки программы допустим Чата Комфорт можно было выводить страничку из перед просмотром скина?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.