Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
то в Program Files разрешено только чтение »
Хотите чтоб например в папке "My Program" (C:\Program Files\My Program) можно было перемещать из папки, редактировать в папке что либо без запроса администратора?
Например: Программа создаёт файл конфигурации ini
Условие: Файл конфигурации ini создаётся рядом с программой.
Если в Windows 7 запустить программу из под администратора, то файл может перезаписываться.
Если в Windows 7 запустить программу обычным способом, то файл не перезапишется а далее может последовать ошибка. В лучшем случае если файл конфигурации ini будет создан в "C:\Users\%UserName%\AppData\Local\VirtualStore".
Это вообще можно релизовать? »Средствами Inno? Конечно. Но небезопасно по отношению к системе, т.е неправильным действием можно нарушить безопасность всей системы.
По этому поводу с El Sanchez-ом можно так сказать уже обсуждали примерно отсюда. Тогда, либо меня не поняли, либо я не правильно написал - что в итоге ни к чему хорошему не привело.
В справке написано, про Permissions почитайте.
alenov, В вашем случае: если будете применять Permissions, то чтобы избежать проблем с нарушением безопасности системы, нужно либо Запретить пользователю менять место установки приложения
DisableDirPage=yes
либо жёстко привязывать папку:
[Files]
Source: MyProg.exe; DestDir: {app}\My Program; Flags: ignoreversion
а затем к My Program применять Permissions.
[Dirs]
Name: {app}\My Program
Рекомендую сначала почитать справку, прежде чем что-то предпринимать.
habib2302
29-07-2014, 17:45
Доброе время суток. В моем репаке AIDA64 присутствуют 4 редакции т.е 4 программы и дело в том, что если использовать параметр установки
[Setup]
AppendDefaultDirName=yes
и этот код для изменение пути установки в зависимости от выбранного компонента
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents:
begin
if IsComponentSelected('AIDA64\I\1') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA641}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA641}'
end else
if IsComponentSelected('AIDA64\I\3') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}'
end else
if IsComponentSelected('AIDA64\I\2') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA643}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA643}'
end else
if IsComponentSelected('AIDA64\I\4') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA644}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA644}'
end else
if IsComponentSelected('AIDA64\P\1') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#AIDA641} Portable'
end else
if IsComponentSelected('AIDA64\P\3') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#AIDA642} Portable'
end else
if IsComponentSelected('AIDA64\P\2') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#AIDA643} Portable'
end else
if IsComponentSelected('AIDA64\P\4') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + '{#AIDA644} Portable'
end;
end;
end;
end;
работать не будет если изменить путь установки через кнопку обзор
было так
http://i.imgur.com/ZkfQrd0.png (http://i.imgur.com/2fIMDpH.jpg)
а после выбора другого каталога стало так
http://i.imgur.com/Stb9jN0.png (http://i.imgur.com/vXdq0fb.jpg)
http://rghost.ru/57153259
Антон_Мураткин@vk
30-07-2014, 01:48
Доброе время суток!!
Возможно ли добавить в категорию [Tasks] без создания нового лейбла, пару слов? И что бы они были без чекбокса?
Заранее благодарю.
Антон_Мураткин@vk
30-07-2014, 02:27
Всё спасибо. Решение нашёл сам.
habib2302
31-07-2014, 11:57
мне хоть кто-нибудь ответит на мой вопрос http://forum.oszone.net/post-2382860-1242.html
Антон_Мураткин@vk
31-07-2014, 22:33
Доброе время суток. Ребят кто знает как прописать путь главной папки и под-папок вот в этом примере.
-ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\ -msrep+delta+lzma:a1:mfbt4:d32m:fb273:mc10000:lc8#@Data1.lst#Setup-1.bin
-ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\ -msrep+delta+lzma:a1:mfbt4:d32m:fb273:mc10000:lc8#@Data2.lst#Setup-2.binКакие тут ошибки, кто знает?
Заранее благодарю!
R.i.m.s.k.y.
31-07-2014, 22:46
Если тут ошибки? Кто знает под скажите. »
Есть ли тут ошибки? Кто знает, подскажите
это были не опята не инно
habib2302, секция компонентов идет после выбора директории, вызов некорректен
habib2302
31-07-2014, 23:14
R.i.m.s.k.y., как раз таки нет. мой скрипт изучи (ссылка в моем прошлом посте http://rghost.ru/57153259).
[Setup]
AppName=My program
AppVerName=My program 1.5
DefaultDirName={pf}\My program
;DisableDirPage=True
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Components]
Name: WB; Description: 'Мой компьютер' - Настройки; ExtraDiskSpaceRequired: 1048576
[code]
function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;
Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint // иначе вместо названия программы [name]
end;
end;
End;
Procedure InitializeWizard;
Begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
end;
Антон_Мураткин@vk
31-07-2014, 23:20
R.i.m.s.k.y., А вы тут находитесь по поиску ошибок орфографии?
R.i.m.s.k.y.
01-08-2014, 08:07
habib2302, кмк ошибка в том что ты жеско задаешь путь, я бы попробовал AddBackslash(ExpandConstant('{app}')) + '{#AIDA641}'
Антон_Мураткин@vk, http://www.bfm.ru/news/261172
Какие тут ошибки, кто знает? »
непонятный код в иннотеме
habib2302
01-08-2014, 09:43
R.i.m.s.k.y., причем тут это. я говорю, что при выборе другого каталога установки изначальный путь сбивается (посмотри скриншоты в этом посте http://forum.oszone.net/post-2382860-1242.html)
в коде прописано так
AddBackslash(ExpandConstant('{app}')) + '{#AIDA641}'
а в разделе Setup прописано так
DefaultDirName={pf}\FinalWire
и еще в добавок стоит параметр установки
AppendDefaultDirName=yes
R.i.m.s.k.y.
01-08-2014, 10:03
в коде прописано так »
хм
я видел
AddBackslash(ExpandConstant('{defaultdirname}')) + '{#AIDA641}' (по памяти, пишу с работы)
это и смутило
sergey3695
01-08-2014, 11:02
Цитата Антон_Мураткин@vk:
Какие тут ошибки, кто знает? »
это батник. темой ошибся.
может так?
arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\ -msrep+delta+lzma:a1:mfbt4:d32m:fb273:mc10000:lc8 Data-1.bin packeddata\*
@pausepackeddata\* из этой папки берет для запаковки. Data-1.bin название запакованного. я справку не открывал и уже не помню что там точно что обозначает. поэтому запаковывает, но может что лишнее. где-то бред может быть.
Цитата R.i.m.s.k.y.:
секция компонентов идет после выбора директории, вызов некорректен »
я б руки оторвал за то что ботву туда запихнул....
Цитата R.i.m.s.k.y.:
кмк ошибка в том что ты жеско задаешь путь, я бы попробовал AddBackslash(ExpandConstant('{app}')) + '{#AIDA641}' »
да не задает он путь как нужно. а тупо меняется надпись в эдите. а выбор папки так не сделать.
Цитата habib2302:
мне хоть кто-нибудь ответит на мой вопрос »
Вот... (http://rghost.ru/57198516)
R.i.m.s.k.y.
01-08-2014, 11:17
а тупо меняется надпись в эдите. »
это меня тоже смутило
но т.к я не знаю как править путь после выбора - решил не возбухать :)
это батник. темой ошибся. »
я воще подумал что nsis
а тупо меняется надпись в эдите »
Текст в эдите и есть путь.
habib2302
01-08-2014, 15:26
sergey3695, огромное спасибо. хоть один человек меня понял
sergey3695
01-08-2014, 17:06
saurn, там нужно было сделать чтобы и при нажатии "обзор" измененялась прибавляемая часть пути.
habib2302
01-08-2014, 19:14
sergey3695, один нюанс появился. не работает команда /DIR
astafev_roma
01-08-2014, 20:27
Доброго времени суток уважаемые пользователи.
Хотел бы попросить у опытных пользователей помощи:
Возможно ли добавить на страницу выбора заданий (tasks) небольшое окошко и чтобы в нем выводилась дополнительная информация (инструкция) из .rtf файла?
Habetdin
01-08-2014, 21:45
Возможно ли добавить на страницу выбора заданий (tasks) небольшое окошко и чтобы в нем выводилась дополнительная информация (инструкция) из .rtf файла? »
http://i.imgur.com/UMZaFvR.png
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
// Можно и .rtf
Source: compiler:Examples\Readme.txt; Flags: dontcopy ignoreversion solidbreak
[Tasks]
Name: example1; Description: Первый пошёл; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: example2; Description: Второй...; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: example3; Description: Третий...; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: example4; Description: Кто все эти люди?; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Code]
{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
var
RichEditViewer1: TRichEditViewer;
// сохраняйте следующую переменную при редактировании элементов в FormDesigner'е, а то потеряется при перезаписи :)
RichEditViewer1Text: AnsiString;
procedure RedesignWizardForm;
begin
with WizardForm.TasksList do
begin
Height := ScaleY(128);
end;
{ RichEditViewer1 }
RichEditViewer1 := TRichEditViewer.Create(WizardForm);
with RichEditViewer1 do
begin
Name := 'RichEditViewer1';
Parent := WizardForm.SelectTasksPage;
Left := ScaleX(0);
Top := ScaleY(168);
Width := ScaleX(417);
Height := ScaleY(65);
ScrollBars := ssVertical;
end;
RichEditViewer1.TabOrder := 2;
{ ReservationBegin }
ExtractTemporaryFile('Readme.txt');
LoadStringFromFile(ExpandConstant('{tmp}/Readme.txt'), RichEditViewer1Text);
RichEditViewer1.RTFText := RichEditViewer1Text;
{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!
procedure InitializeWizard();
begin
RedesignWizardForm;
end;
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030106B02000054504630F10B5457697A617264466F726D0A57697A61726 4466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C656674020 00B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010 D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724 E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C6963697457696 4746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E65725 06167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F74656 26F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4 578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B5 06167650F53656C6563745461736B73506167650D4578706C69636974576964746803A1010E4578706C69636974486569676 87403ED0000F110544E6577436865636B4C697374426F78095461736B734C697374064865696768740380000E4578706C696 3697448656967687403800000000F5452696368456469745669657765720F526963684564697456696577657231044C65667 4020003546F7003A80005576964746803A101064865696768740241085461624F72646572020200000000000000
Внешний вид можно отредактировать (http://i.imgur.com/YTOmPZd.png) с помощью FormDesigner'а в расширенной версии Inno Setup
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC