Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
Kashtan007
20-03-2015, 15:38
kotyarko@fb, вот что вышло.
http://s017.radikal.ru/i437/1503/a8/579fb641ea7c.png
kotyarko@fb
20-03-2015, 17:23
вот что вышло. »
Ну выкладывайте тогда код.
Stealthmax
22-03-2015, 10:03
Shegorat, опробовал измененный JSONConfig, мягко говоря, "не то пальто", в том числе "убитые" разметка и отступы.
Может кто-то подскажет другой вариант решения задачи для данного файла (http://forum.oszone.net/post-2483174-315.html)?
Обработать json в качестве текстового удалось, но как добавить/удалить символы комментирования при необходимости в строку?
Farser21
22-03-2015, 14:25
Добрый день.
К сожалению все еще не разобрался.
Как по этому примеру сделать, чтобы выбранные параметры суммировались? В этом примере, если выбрать несколько параметров, то они заменят друг друга и в итоге мы получим конфиг с самым последним параметром. Мне же нужно, чтобы они суммировались. Возможно ли это?
[Components]
Name: 1; Description: Описание;
Name: 2; Description: Описание;
[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent; Parameters: "Параметр для запуска"; Components: 1;
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent; Parameters: "Параметр для запуска"; Components: 2;
habib2302
22-03-2015, 20:21
Доброе время суток. Делаю репак Cyberfox. Как делать проверку по процессорам и отменить установку в случае не совместимости процессора
habib2302
22-03-2015, 20:36
выбранные параметры суммировались »
В смысле?
Farser21
22-03-2015, 21:38
habib2302, к каждому компоненту, прикреплен запуск программы с определенным параметром, если выбрать несколько параметров, то программа будет запускаться несколько раз, соответственно заменяя каждый прошлый параметр. Мне же нужно, чтобы при последующих запусках программы параметры суммировались, а не заменяли предыдущий.
kotyarko@fb
22-03-2015, 22:15
Как делать проверку по процессорам и отменить установку в случае не совместимости процессора »
http://forum.oszone.net/post-2147391-410.html
habib2302
23-03-2015, 07:45
kotyarko@fb, в коде ничего нету связанное с производителями процессоров. Мне нужна проверка по производителям процессоров. Если заданный процессор (например Intel) не совместим с процессором в компе (например AMD), то отменить установку программы
kotyarko@fb
23-03-2015, 10:17
в коде ничего нету связанное с производителями процессоров. »
Уверены?
http://s008.radikal.ru/i304/1503/c0/2ed096b862fb.jpg
Применяете переменную PROCESSOR_IDENTIFIER. А потом спокойно проверяете, AMD или Intel.
А ещё можно таким способом:
Function InitializeSetup(): Boolean;
var
DeviceName: String;
begin
Result := RegQueryStringValue(HKLM, 'Hardware\Description\System\CentralProcessor\0', 'ProcessorNameString', DeviceName);
if Result then
MsgBox(DeviceName, mbInformation, MB_OK);
end;
El Sanchez
23-03-2015, 12:31
Как по этому примеру сделать, чтобы выбранные параметры суммировались? В этом примере, если выбрать несколько параметров, то они заменят друг друга и в итоге мы получим конфиг с самым последним параметром. Мне же нужно, чтобы они суммировались. Возможно ли это? »
Farser21, ну и используйте константу {code:...} для определения параметров. В теле функции делаете все, что нужно.
[Components]
Name: Component1; Description: Component 1;
Name: Component2; Description: Component 2;
[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent; Parameters: {code:GetParameters}
[Code]
//////////////////////////////////////////////
function GetParameters(Param: String): String;
begin
with TStringList.Create do
try
if IsComponentSelected('Component1') then
Add('/param1');
if IsComponentSelected('Component2') then
Add('/param2');
Result := Text;
StringChangeEx(Result, #13#10, #32, True);
finally
Free;
end;
end;
Dodakaedr
25-03-2015, 20:05
Приведите, пожалуйста, пример работы функции FindWindowEx который бы работал на расширенной версии unicode? Какая константа клика для unicode версии? Unicode No (http://winapi.freetechsecrets.com/win32/WIN32BMCLICK.htm) или это не то?
Или поправьте этот код:#define A = (Defined UNICODE) ? "W" : "A"
[Setup]
AppName=App
AppVersion=1.0
DefaultDirName={pf}\app
OutputDir=.
[Code]
type
pchar=pansichar;
Const
BM_CLICK = $00F5;
function FindWindowEx(hWndM, hWndC: HWND; lpszClass, lpszWindow: PChar): HWND;external 'FindWindowEx{#A}@user32.dll stdcall';
function InitializeSetup(): Boolean;
var
r: integer;
begin
Result := Exec(ExpandConstant('{sys}\calc.exe'), '', '', SW_SHOW, ewNoWait, R);
Sleep(200);
end;
procedure InitializeWizard();
var
AppWnd: HWND;
begin
if FindWindowByWindowName('Калькулятор') <> 0 then begin
AppWnd:= FindWindowByWindowName('Калькулятор');
SendMessage(FindWindowEx(AppWnd, 0, 'Button', '7'), BM_CLICK, 0, 0);
end;
end;
R.i.m.s.k.y.
25-03-2015, 21:24
Подскажите, пожалуйста, версия инно 5.5.1 ee2 (a) ANSI или UNICODE? от к итайцев расширенная или оригинальная?
sergey3695
26-03-2015, 11:02
(a) - ansi. расширенная наверное.
R.i.m.s.k.y.
26-03-2015, 11:03
sergey3695, а не подрелиз какой-нибудь?
kotyarko@fb
26-03-2015, 12:33
от к итайцев расширенная или оригинальная? »
Так китайцы только расширенную и делают, не?
R.i.m.s.k.y.
26-03-2015, 13:25
Так китайцы только расширенную и делают, не? »
ога
вопрос это (расширенная от китайцев) or (стандартная)
Dodakaedr
26-03-2015, 13:29
вопрос это (расширенная от китайцев) or (стандартная) »
расширенная
R.i.m.s.k.y.
26-03-2015, 13:34
господа состоятельные кроты, F1!!!
есть две проблемки:
1. в initializeWizard компонент весом 10 гиг фиксируется, но на странице SelectDirPage пишет что минимум нужно 35мб, хотя по идее должно писаться 10 гиг
2. На странице компонентов отсутствует полоса прокрутки, т.е. по факту список компонентов прокручивается если колесиком мышки повозить, но сие действо неясно тк полосы вертикальной прокрутки нет
(с моей подписью вопрос немного диссонирует, дада :) )
скрипт в аттаче, файлы нужные вот http://sendfile.su/1100675
AlekseyPopovv
26-03-2015, 13:34
Как эту процедуру разделить на портабле и инсталлер:
procedure SettClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
Bus:
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf32}\{#MyAppCompany}')) + '{#MyAppName} {#Bus}';
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#MyAppName} {#Bus} Portable';
end;
Net:
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf32}\{#MyAppCompany}')) + '{#MyAppName} {#Net}';
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#MyAppName} {#Net} Portable';
end;
end;
end;
Если добавить if Installer.Checked then или if Portable.Checked then скрипт компилируется, но при запуске инсталлятора выдаёт ошибку:
Runtime Error (at 80:119):
Could not call proc.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.