Скрипты Inno Setup. Помощь и советы [часть 8]
-
MaximilianoPozo
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
El Sanchez, можно реализовать этот вопрос?
Скрипты Inno Setup. Помощь и советы [часть 8]
-
Shkutu
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата Dodakaedr:
Как в inno сгенерировать случайное число на 10 цифр?
Например, так:
Код:
Как в inno сгенерировать случайное число на 10 цифр?
Скрипты Inno Setup. Помощь и советы [часть 8]
Например, так:
Код:
Код: Выделить всё
Function InitializeSetup(): Boolean;
var
I: Integer;
S: String;
begin
S := '';
for I := 0 to 9 do
begin
S := S + IntToStr(Random(9));
end;
MsgBox(S, mbInformation, MB_OK);
Result := False;
end;-
Shkutu
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата El Sanchez:
Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if DirExists(ExpandConstant('{app}\MyProg')) then
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
end;
С этим вообще ничего не происходит, устанавливается всегда.
Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if DirExists(ExpandConstant('{app}\MyProg')) then
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
end;
Скрипты Inno Setup. Помощь и советы [часть 8]
С этим вообще ничего не происходит, устанавливается всегда.
-
ekspoint
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата:
А есть еще один вопрос: как можно получить список инстанций MS SQL? Даже не знаю, как и что в гугле спрашивать...
Последний раз редактировалось maraby, 05-05-2015 в 15:21.
В общем, получилось
Использовала RegGetValueNames. Единственное, если RootKey указать как HKEY_LOCAL_MACHINE - то возвращает пустой список.
В общем надо указать HKLM64
Вопрос: а если инстанция SQL 32-разрядная?
Код:
А есть еще один вопрос: как можно получить список инстанций MS SQL? Даже не знаю, как и что в гугле спрашивать...
Последний раз редактировалось maraby, 05-05-2015 в 15:21.
В общем, получилось

Использовала RegGetValueNames. Единственное, если RootKey указать как HKEY_LOCAL_MACHINE - то возвращает пустой список.
В общем надо указать HKLM64
Вопрос: а если инстанция SQL 32-разрядная?
Код:
Код: Выделить всё
procedure UzupelniNazweInstancjiSQL;
var
Names: TArrayOfString;
I: Integer;
S: String;
begin
if RegGetValueNames(HKLM64, 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL', Names)
then
begin
S := '';
SerwerInstancja.Items.Clear;
for I := 0 to GetArrayLength(Names)-1
do
begin
S := S + Names[i] + #13#10;
SerwerInstancja.Items.Add(S);
end;
end else
begin
// add any code to handle failure here
MsgBox(' :( ', mbInformation, MB_OK);
end;
end;-
svs23
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата maraby:
а если инстанция SQL 32-разрядная?
Попробуйте так:
код
[spoiler]Код: [/spoiler]
з.ы. вместо HKLM32, вроде, можете использовать просто HKLM.
а если инстанция SQL 32-разрядная?
Скрипты Inno Setup. Помощь и советы [часть 8]
Попробуйте так:
код
[spoiler]Код: [/spoiler]
Код: Выделить всё
procedure UzupelniNazweInstancjiSQL;
var
Names: TArrayOfString;
I, RegName: Integer;
S: String;
begin
if IsWin64 then
RegName := HKLM64
else
RegName := HKLM32;
if RegGetValueNames(RegName, 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL', Names)
then
begin
S := '';
SerwerInstancja.Items.Clear;
for I := 0 to GetArrayLength(Names)-1
do
begin
S := S + Names[i] + #13#10;
SerwerInstancja.Items.Add(S);
end;
end else
begin
// add any code to handle failure here
MsgBox(' :( ', mbInformation, MB_OK);
end;
end;з.ы. вместо HKLM32, вроде, можете использовать просто HKLM.
-
svs23
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Помогите прицепить новый тип установки к новому компонент листу
Код: Выделить всё
[Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа
DirExistsWarning=no
AppendDefaultDirName=no
[CustomMessages]
CompName1=Компонент 1
CompName2=Компонент 2
CompSubtitlesLng=Язык субтитров
CompVoiceLng=Язык озвучки
CompRussian=Русский
CompEnglish=Английский
[_CODE]
var
ComboBox: TNewComboBox;
Page: TWizardPage;
var
ComponentsList1: TNewCheckListBox;
procedure CreateWizardPages;
begin
begin
Page := CreateCustomPage(wpWelcome, '', '');
ComboBox := TNewComboBox.Create(Page);
ComboBox.Width := Page.SurfaceWidth;
ComboBox.Parent := Page.Surface;
ComboBox.Style := csDropDownList;
ComboBox.Items.Add('TComboBox 1');
ComboBox.Items.Add('TComboBox 2');
ComboBox.Items.Add('TComboBox 3');
ComboBox.Items.Add('TComboBox 4');
ComboBox.Items.Add('TComboBox 5');
ComboBox.ItemIndex := 0;
end;
//========================================================================\\
ComponentsList1 := TNewCheckListBox.Create(WizardForm);
with ComponentsList1 do
begin
Parent := Page.Surface;
SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, True, False, True, nil); //0
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //1
AddRadioButton(CustomMessage('CompEnglish'), '', 1, True, True, nil); //2
AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, True, False, True, nil); //3
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil); //4
AddRadioButton(CustomMessage('CompEnglish'), '', 1, True, True, nil); //5
end;
end;
function IsComponentsForm1(CompIndex: Integer): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to ComponentsList1.ItemCount - 1 do
begin
if CompIndex <= (ComponentsList1.ItemCount - 1) then
Result := ComponentsList1.Checked[CompIndex];
end;
end;
procedure InitializeWizard();
begin
CreateWizardPages;
end;-
NewMix
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата Николай_Николаич@vk:
С этим вообще ничего не происходит, устанавливается всегда.
Цитата Николай_Николаич@vk:
Если в папке MyProgram есть папка Prog - то все отлично, если же её нету, то предупреждение в окошке.
Николай_Николаич@vk, ну, я и сделал предупреждение, сообщил и продолжил далее. Так?
Скрытый текст
[spoiler]Код: [/spoiler]
С этим вообще ничего не происходит, устанавливается всегда.
Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата Николай_Николаич@vk:
Если в папке MyProgram есть папка Prog - то все отлично, если же её нету, то предупреждение в окошке.
Скрипты Inno Setup. Помощь и советы [часть 8]
Николай_Николаич@vk, ну, я и сделал предупреждение, сообщил и продолжил далее. Так?
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
begin
Result := not DirExists(ExpandConstant('{app}\MyProg'));
if not Result then
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
end;
end;
-
svs23
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата El Sanchez:
ну, я и сделал предупреждение, сообщил и продолжил далее. Так?
Скрытый текст
Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
begin
Result := not DirExists(ExpandConstant('{app}\MyProg'));
if not Result then
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
end;
end;
Ну дело в том, что нет предупреждения, независимо от того, если ли папка Prog или нету.
ну, я и сделал предупреждение, сообщил и продолжил далее. Так?
Скрытый текст
Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
begin
Result := not DirExists(ExpandConstant('{app}\MyProg'));
if not Result then
MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
end;
end;
Скрипты Inno Setup. Помощь и советы [часть 8]
Ну дело в том, что нет предупреждения, независимо от того, если ли папка Prog или нету.
-
NewMix
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
а такой вопрос, после того как файл скачался и начал распаковываться почему не появляется cmd со списком распаковываемых компонентов? Ибо пользователь не сразу может понять что будет еще распаковка звуков.
-
NewMix
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
El Sanchez, Dodakaedr, Спасибо, разобрался.
Не подскажите как брать путь установки из реестра.
Например:
Если в реестре есть только ключ -
SOFTWARE\1
Dir - C:\1
То берем C:\1
А если в реестре есть
SOFTWARE\2
Dir - C:\2
То путь установки будет из 2-го.
если имеется два ключа, путь бы брался из второго - C:\2
Не подскажите как брать путь установки из реестра.
Например:
Если в реестре есть только ключ -
SOFTWARE\1
Dir - C:\1
То берем C:\1
А если в реестре есть
SOFTWARE\2
Dir - C:\2
То путь установки будет из 2-го.
если имеется два ключа, путь бы брался из второго - C:\2