Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
svs23, kotyarko@fb, просто переименовать недостаточно. В этом случае запись в удалении программ будут вести в никуда. Dodakaedr предложил верный вариант. Где-то на форуме была еще пара примеров, но суть везде одна.
kotyarko@fb
09-12-2014, 10:46
прописал в [Files]
Source: BeforeInstall: BackupCheck_4(); »
С какой целью?
И с какой целью вы используете переменную CurrentFileName (которая определяет обрабатываемый в данный момент файл, при установке)?
Dodakaedr
09-12-2014, 10:48
спс, но для меня это сложновато »
но так будет правильнее
kotyarko@fb
09-12-2014, 10:49
В этом случае ярлык деинсталятора(если есть) и запись в удалении программ будут вести в никуда. »
Ну тогда ещё реестр можно подправить:RegWriteStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\Программа_is1','UninstallString', ExpandConstant('{app}\uninstall.exe'));
С какой целью?
И с какой целью вы используете переменную CurrentFileName (которая определяет обрабатываемый в данный момент файл, при установке)? »
нашел на одном из форумов код для создания резервных копий только для заменяемых файлов
procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
basePath := ExpandConstant('{app}\res_mods');
srcFile := ExpandConstant(CurrentFileName);
shortPath := srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile := ExpandConstant('{app}\res_mods\Backup') + shortPath;
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
end;
так вот и пытаюсь его приспособить...
ранее, когда он был у меня в коде только один без этих BackupCheck, работал без проблем, а теперь....
svs23, kotyarko@fb, просто переименовать недостаточно. В этом случае запись в удалении программ будут вести в никуда. Dodakaedr предложил верный вариант. Где-то на форуме была еще пара примеров, но суть везде одна. »
но так будет правильнее »
спс, но я отключил отображение в УСТАНОВЛЕННЫХ ПРОГРАММАХ моего установщика, удаление через ярлык на рабочем столе или из папки где установлен
svs23, если хотите использовать BackupCheck_4() в таком виде в BeforeInstall, то тогда function замените на procedure. И читайте в справке о использовании внешних и встроенных функций.
Ну тогда ещё реестр можно подправить: »
Да. Ну и еще пару записей в реестре.
kotyarko@fb
09-12-2014, 11:04
Да. Ну и еще пару записей в реестре. »
Хм.. значит, невнимательно просматривал. Буду знать.
svs23, если хотите использовать BackupCheck_4() в таком виде в BeforeInstall, то тогда function замените на procedure. И читайте в справке о использовании внешних и встроенных функций. »
спс. вроде помогло, проверяю....
всем ОГРОМНОЕ спс за помощь, все заработало так как я хочу...
теперь еще unins домучаю и все, с меня хватит
еще раз всем спс :)
последняя, надеюсь, просьба :)
помогите увязать в одной функции два кодаprocedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssInstall then
begin
BackupCheck_2();
BackupCheck_3();
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssDone: RewritingUninstallData();
end;
end;
у меня не получается...
Dodakaedr
09-12-2014, 11:47
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall:
begin
BackupCheck_2();
BackupCheck_3();
end;
ssDone:
begin
RewritingUninstallData();
end;
end;
end;
Dodakaedr,
спасибо!
вопрос, наверное не по адресу, но все же спрошу, можно как-нибудь прописать чтобы после установки указанные ярлыки (определенный файлы txt и xml) открывались с помощью Notepad++ (это для тех кто не знает что такое "открыть с помощью", да и еще найти там Notepad++)
сразу извиняюсь если не по адресу
Dodakaedr
09-12-2014, 12:18
можно как-нибудь прописать чтобы после установки указанные ярлыки (определенный файлы txt и xml) открывались с помощью Notepad++ »
Notepad++ может быть и не установлен, поэтому открываем программой по умолчанию.
[Run]
Filename: "{app}\INIT.xml"; Description: "View file"; Flags: postinstall shellexec skipifsilent
Filename: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent
Kashtan007
09-12-2014, 12:28
Всем привет, скажите пожалуйста, как можно убить нужный мне процесс перед началом установки, желательно уведомив о закрытии процесса?
Если можно, то скиньте оба варианта, заранее спасибо!
P.S. У меня Unicode
Notepad++ может быть и не установлен, поэтому открываем программой по умолчанию. »
но я же могу его и скрыто установить ;)
Dodakaedr,
а как к View the README file и View file привязать Notepad++ (и я так понимаю он должен быть полноценно установлен в систему с записью в реестре?)
Dodakaedr
09-12-2014, 13:10
но я же могу его и скрыто установить »
можете
а как к View the README file и View file привязать Notepad++ (и я так понимаю он должен быть полноценно установлен в систему с записью в реестре?) »
Да. И привязку через реестр нужно делать, но не советую такое делать, это мало кому понравится и к тому же дополнительный вес к инсталлу.
Я установил вашу игру и по умолчанию у меня для открытия текстовых файлов стоит SynWrite, но после установки вашей игры установится Notepad++ который мне и даром не нужен и собьются настройки по умолчанию, мне это сразу не понравится и врядли больше буду устанавливать ваши репаки.
как можно убить нужный мне процесс перед началом установки »
Какой именно процесс? IsTask.dll пробовали?
а как к View the README file и View file привязать Notepad++ »
[Run]
Filename: Путь к папке\notepad++.exe; Parameters: "{app}\INIT.xml"; Description: "View file"; Flags: postinstall shellexec skipifsilent
Filename: Путь к папке\notepad++.exe; Parameters: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent
я так понимаю он должен быть полноценно установлен в систему с записью в реестре »
Необязательно. Можно использовать портативный вариант.
но я же могу его и скрыто установить »
А это нехороший вариант. Надо уважать пользователя.
как можно убить нужный мне процесс перед началом установки »
В шапке темы есть примеры.
[Run]
Filename: Путь к папке\notepad++.exe; Parameters: "{app}\INIT.xml"; Description: "View file"; Flags: postinstall shellexec skipifsilent
Filename: Путь к папке\notepad++.exe; Parameters: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent »
А это нехороший вариант. Надо уважать пользователя. »
так чтобы сделать такую привязку мне нужно что-бы у пользователя notepad++ был в определенной папке
так вот я его и установлю в DestDir: "{sd}\Notepad++\";
чтобы сделать вот так
[Run]
Filename: {sd}\Notepad++\notepad++.exe; Parameters: "{app}\INIT.xml"; Description: "View file"; Flags: postinstall shellexec skipifsilent
Filename: {sd}\Notepad++\notepad++.exe; Parameters: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent
чтобы сделать такую привязку мне нужно что-бы у пользователя notepad++ был в определенной папке »
Разумеется. В данном случае подойдет и портативная версия, так как имя открываемого файла передается программе параметром комстроки. Говоря о нехорошем варианте, я имел ввиду, что не надо устанавливать некий дополнительный софт без ведома пользователя. Предупредите о том, что будет установлена дополнительная программа, а лучше предоставьте выбор.
Какой именно процесс? IsTask.dll пробовали? »
IsTask.dll не работает на Unicode версии. Где-то в предыдущей теме выкладывали IsTask.dll для юникода. Да и в шапке есть варинаты без дополнительных библиотек.
Kashtan007
09-12-2014, 13:29
Какой именно процесс? IsTask.dll пробовали? »
Процесс WorldOfTanks.exe, да пробовал, процесс не убивается (
saurn, посмотрел предложенный код... я ни это имел ввиду, но спасибо....
у меня в коде прописано, что после установки на рабочем столе создается новая папка, в ней ярлыки на файлы настроек модов (чтобы не по папкам их искать, а все в одном месте), вот эти ярлыки (файлы) открывать notepad++
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC