Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

Dodakaedr
07-05-2015, 20:55
Нет.
К примеру в пути game/mods/01/ есть файл file.cti. При установке в папку mods/01/ установщик дописывал бы в файл file.cti пару строчек которые указываешь в скрипте. »
А что по вашему значить "дописывал бы в файл file.cti пару строчек"? Какие строчки?

Николай_Николаич@vk
07-05-2015, 21:21
А что по вашему значить "дописывал бы в файл file.cti пару строчек"? Какие строчки? »

в нем строчки к примеру такие.
[item]
1
farbschema_tex1
main1.bmp

Нужно чтобы во время установки дописывалось в конец данного документа (file.cti) :

[item]
2
farbschema_tex1
main2.bmp


и получалось

[item]
1
farbschema_tex1
main1.bmp

[item]
2
farbschema_tex1
main2.bmp

Dodakaedr
07-05-2015, 21:40
в нем строчки к примеру такие. »
А вот какой файл... ну тогда так:[setup]
appname=app
appvername=app 1.0
DefaultDirName={pf}\app

[Code]
procedure Changestring;
var
s: string;
begin
s := +#13#10+ '[item]' +#13#10+ '2' +#13#10+ 'farbschema_tex1' +#13#10+ 'main2.bmp';
if FileExists(ExpandConstant('{app}\file.cti')) then
SaveStringToFile(ExpandConstant('{app}\file.cti'), s, True);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then Changestring;
end;

Николай_Николаич@vk
07-05-2015, 21:57
А вот какой файл... ну тогда так:
Код:
[setup]
appname=app
appvername=app 1.0
DefaultDirName={pf}\app
[Code]
procedure Changestring;
var
s: string;
begin
s := +#13#10+ '[item]' +#13#10+ '2' +#13#10+ 'farbschema_tex1' +#13#10+ 'main2.bmp';
if FileExists(ExpandConstant('{app}\file.cti')) then
SaveStringToFile(ExpandConstant('{app}\file.cti'), s, True);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then Changestring;
end; »
Спасибо огромное, помогло.

AlexM22204
08-05-2015, 10:37
Всем здравствуйте и с наступающим праздником ПОБЕДЫ!!! :up:
Сделал для себя перепаковку программы USB Safely Remove, всё получилось хорошо, но остались два вопроса ("косметического плана - уборка за собой") :cool: :
1) При запуске программа создаёт дополнительную ветку в реестре HKLM\SOFTWARE\SafelyRemove. Как прописать её удаление при деинсталяции в скрипте.
2) При запуске программа создаёт лог событий USBSRService (c:\ProgramData\USBSRService\USBSRService.log.txt). Как прописать удаление папки с логом (c:\ProgramData\USBSRService) при деинсталяции в скрипте.
Вот мой скрипт. Если есть ещё замечания по скрипту - приму с удовольствием (только учусь) :o

R.i.m.s.k.y.
08-05-2015, 10:52
AlexM22204,

1.
[Registry]
Root: HKLM; SubKey: SOFTWARE\SafelyRemove; Flags: uninsdeletekey noerror

2.[UninstallDelete]
Type: filesandordirs; Name: "{commonappdata}\USBSRService"

Вот мой скрипт. Если есть ещё замечания по скрипту - приму с удовольствием (только учусь »
Filename: "{win}\regedit.exe"; Parameters: "-s ""{src}\USBSafelyRemoveSettings.reg"""; StatusMsg: "Внесение настроек в реестр..."

покажи USBSafelyRemoveSettings.reg, а то может ты там вносишь в х64 секции реестра

AlexM22204
08-05-2015, 11:09
R.i.m.s.k.y., 2.[UninstallDelete]
Type: filesandordirs; Name: "{commonappdata}\USBSRService" »
Тут всё удалилось, без вопросов.
А вот ветка в реестре HKLM\SOFTWARE\SafelyRemove не удаляется, хоть тресни, может как по другому. :( Хотя вручную всё удаляется...
А также таким батником всё удаляется...
@Echo Off
Reg Delete "HKLM\SOFTWARE\SafelyRemove" /f
Pause
AlexM22204, попробуй запусти деинсталлятор от админа »
не помогло...
покажи USBSafelyRemoveSettings.reg, а то может ты там вносишь в х64 секции реестра »
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\SafelyRemove\Options]

; Спятать иконку, когда нет устройств для остановки
"AutoHideIcon"="1"
; Показывать количество отображаемых устройств в трей-иконке
"ShowCountOfDevicesInTrayIcon"="1"
; Упрощённое меню
"SimpleMenu"="1"

R.i.m.s.k.y.
08-05-2015, 11:12
AlexM22204, попробуй запусти деинсталлятор от админа

R.i.m.s.k.y.
08-05-2015, 11:30
AlexM22204, это очень плохой тон - отвечать выше

убери noerror и удали еще раз - что напишет покажи
и проверь правильность написания Software\SafelyRemove

AlexM22204
08-05-2015, 11:47
AlexM22204, это очень плохой тон - отвечать выше »
Извиняюсь исправлюсь! Не удалилось...
http://savepic.ru/6957825.jpg (http://savepic.ru/6968065.jpg)

R.i.m.s.k.y.
08-05-2015, 11:56
AlexM22204, хз
либо права на ветку не даны, либо написание (копировать из реестра название разделов - вставлять в скрипт)

svs23
08-05-2015, 20:14
помогите.
в коде где-то косяк. при выборе "неправильной" папки для установки появляется окно с сообщением что выбрана неправильная папка, но после нажатия ок проходит дальше на следующую страницу, хотя должна остаться на странице выбора папки для установки

kotyarko@fb
09-05-2015, 10:29
при выборе "неправильной" папки для установки появляется окно с сообщением что выбрана неправильная папка, но после нажатия ок проходит дальше на следующую страницу, хотя должна остаться на странице выбора папки для установки »
444 строка, уберите Result := True;
Какой смысл всех тех проверок и указаний "Result := False", если в конце функции Result всё равно приравнивается к True?

svs23
09-05-2015, 12:54
kotyarko@fb, не очень силен в этом. спс

444 строка, уберите Result := True;
Какой смысл всех тех проверок и указаний "Result := False", если в конце функции Result всё равно приравнивается к True? »
не помогло...
если убрать эту строку то все равно переходит на следующую страницу установки даже если выбрана не правильная папка, просто на последней странице не пускает дальше...
а мне надо чтобы не пускало дальше страницы wpSelectDir если указана не правильная папка

kotyarko@fb
09-05-2015, 13:31
svs23, там ещё после каждого прохода "if CurPageID = ComponentsPage1.ID" Result`у присваивался True.
Пробуйте: [ссылка удалена].

з.ы. подправил проверку версии патча.

OldGamer
09-05-2015, 14:49
Доброго дня!

Подскажите, пожалуйста, как сделать отображение процентов установки?

svs23
09-05-2015, 15:00
svs23, там ещё после каждого прохода "if CurPageID = ComponentsPage1.ID" Result`у присваивался True.
з.ы. подправил проверку версии патча. »
огромное человеческое спасибо....

kotyarko@fb
09-05-2015, 15:07
Подскажите, пожалуйста, как сделать отображение процентов установки? »
Пример в конце поста (http://forum.oszone.net/post-2124681-69.html).

palsn2000
10-05-2015, 14:13
kotyarko@fb, OldGamer, Здравствуйте, можно мне присоединиться к вашей теме отображения процентов установки?

В обновлённом примере благодаря правке El Sanchez-а процент выполнения прогрессбара дописывается к уже имеющемуся тексту, а можно ли процент выполнения связать с каким нибудь TLabel1, поместить этот TLabel1 например на середину прогресс бара и чтобы отображалось от 0 до 100 % в течение установки?

Николай_Николаич@vk
12-05-2015, 00:42
Еще раз здравствуйте.
Подскажите, как сделать проверку на наличие папки.
Например, путь установки такой - C:\MyProgram\
Если в папке MyProgram есть папка Prog - то все отлично, если же её нету, то предупреждение в окошке.




© OSzone.net 2001-2012