Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Опиши пожалуйста, если не трудно [параметры] »
Читай (http://public.uic.rsu.ru/~skritski/scourses/WebTutor/MCI/mci.htm)
Cartmans
28-02-2010, 23:20
YURSHAT, Возможно ты сможешь решить мою проблему
Проблема заключается в том, что я не могу убрать это окно - http://xmages.net/upload/ec775e69.bmp (http://xmages.net/view-image.htm)
В общем мне нужно зделать так, что бы это окно не выскакивало. Что нужно прописать в скрипте?
Возможно ты сможешь решить мою проблему
Проблема заключается в том, что я не могу убрать это окно - »
Нужно убрать из секции [Icons] строки сознания иконок в меню пуск
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
За создание иконок в меню пуск отвечает константа {group}.
Cartmans
01-03-2010, 08:41
YURSHAT, Спасибо тебе огромное!
Вывод: используйте isgsg.dll от South »
не совсем так
isgsg.dll тоже имеет проблему
под win9x/me/2k возможен показ сплэшей только из .bmp в отличие от IsSplash.dll
с остальным проблем вроде нет
т.е. здесь каждый сам для себя должен решить, что ему нужно и в зависимости от этого выбирать чем пользоваться
не совсем так
isgsg.dll тоже имеет проблему
под win9x/me/2k возможен показ сплэшей только из .bmp в отличие от IsSplash.dll
с остальным проблем вроде нет »
Ну, win9x/me/2k уже давно не актульны, так что мне кажется это вовсе не проблема.
ЗЫ. Поддержка windows 2000 заканчивается 13 июля 2010. Так, что эти оси можно сбросить со счетов...
Cartmans
01-03-2010, 18:31
Обьясните как правильно сделать скрипт фрииарка, что где прописать что бы не было ошибок при отмене установки и т.д. скрипт фрииакра(стандартный) у меня есть
Upd: Помогите! Срочно нужно!
solvador
01-03-2010, 19:42
Доброго времени.
Подскажите пожалуйста, как работать в инно со множествами?
Варианты вида
type
M= Set of 'A'..'D';
var
MS: M;
Не проходят. Жалуется на отсутствие идентификатора...
zzzombie89
01-03-2010, 23:07
Добрый вечер, нужна ваша помощь, есть секция ->
[Run]
Filename: {tmp}\precomp.exe; Parameters: "-r ""{app}\Assets.pcf"""; WorkingDir: {app}; StatusMsg: Восстановление игровых архивов...
Filename: cmd.exe; Parameters: /C del /F /Q Assets.pcf; WorkingDir: {app}; StatusMsg: Удаление временных файлов...
Нужно выполнить через секцию [Code], чтобы выполнялись команды после распаковки FreeArc архивов . . .
alex2010
02-03-2010, 01:36
подскажите пожалуйста код, чтоб было как на скрине(подсчитывало свободное место на ЖД)
http://radikal.ru/F/s006.radikal.ru/i214/1002/ec/44635a0c609f.png.html
svensoft
02-03-2010, 08:07
Cartmans, Обьясните как правильно сделать скрипт фрииарка, что где прописать что бы не было ошибок при отмене установки и т.д. скрипт фрииакра(стандартный) у меня есть »
alex2010, подскажите пожалуйста код, чтоб было как на скрине(подсчитывало свободное место на ЖД)
Вот скрипт с настроеным фриарком и реализованым подсчетом свободного места на жд : http://upwap.ru/757248
Подскажите пожалуйста, как работать в инно со множествами? »
есть смутное подозрение, что никак
хоть инно и определяет set как служебное слово, но свое множество я так и не смог определить
тоже самое в отношении in
solvador
02-03-2010, 13:00
South, такая же беда.
Написал такой код:
procedure DBBackup();
var
C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z: String;
begin
CreateBackup; {вызов процедуры создания резервных копий}
C:= 'c'; D:= 'd'; E:= 'e'; F:= 'f'; G:= 'g'; H:= 'h'; I:= 'i'; J:= 'j'; K:= 'k'; L:= 'l'; M:= 'm'; N:= 'n'; O:= 'j'; P:= 'p'; Q:= 'q'; R:= 'r'; S:= 's'; T:= 't'; U:= 'u'; V:= 'v'; W:= 'w'; X:= 'x'; Y:= 'y'; Z:= 'z';
if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then {ищем по маске файлы в директории}
begin repeat
Delete(FindFiles.Name, 1, 11); {режем строку до одной последней буквы}
case FindFiles.Name of {сравнение и результат}
C: CreateDBBackup; D: CreateDBBackup; E: CreateDBBackup; F: CreateDBBackup; G: CreateDBBackup; H: CreateDBBackup;
I: CreateDBBackup; J: CreateDBBackup; K: CreateDBBackup; L: CreateDBBackup; M: CreateDBBackup; N: CreateDBBackup;
O: CreateDBBackup; P: CreateDBBackup; Q: CreateDBBackup; R: CreateDBBackup; S: CreateDBBackup; T: CreateDBBackup;
U: CreateDBBackup; V: CreateDBBackup; W: CreateDBBackup; X: CreateDBBackup; Y: CreateDBBackup; Z: CreateDBBackup;
// else MsgBox(FindFiles.Name, mbCriticalError, mb_OK); {выводим имя пропущенного файла для проверки}
end;
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;
Он рабочий, но хоть я ни капли не программист, но уж больно глаза режет. Как мне кажется, через множества он был бы намного проще и правильней.
По крайней мере для реализации её таким способом :)
Написал такой код: »
а так не проще?
procedure DBBackup();
var
// C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z: String;
FindFiles : TFindRec;
LastChar : Char;
begin
CreateBackup; {вызов процедуры создания резервных копий}
//C:= 'c'; D:= 'd'; E:= 'e'; F:= 'f'; G:= 'g'; H:= 'h'; I:= 'i'; J:= 'j'; K:= 'k'; L:= 'l'; M:= 'm'; N:= 'n'; O:= 'j'; P:= 'p'; Q:= 'q'; R:= 'r'; S:= 's'; T:= 't'; U:= 'u'; V:= 'v'; W:= 'w'; X:= 'x'; Y:= 'y'; Z:= 'z';
if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then begin {ищем по маске файлы в директории}
repeat
// Delete(FindFiles.Name, 1, 11); {режем строку до одной последней буквы}
LastChar:=UpperCase(FindFiles.Name)[Length(FindFiles.Name)];
if (LastChar<>'A') and (LastChar<>'B') then CreateDBBackup;
// case FindFiles.Name of {сравнение и результат}
// C: CreateDBBackup; D: CreateDBBackup; E: CreateDBBackup; F: CreateDBBackup; G: CreateDBBackup; H: CreateDBBackup;
// I: CreateDBBackup; J: CreateDBBackup; K: CreateDBBackup; L: CreateDBBackup; M: CreateDBBackup; N: CreateDBBackup;
// O: CreateDBBackup; P: CreateDBBackup; Q: CreateDBBackup; R: CreateDBBackup; S: CreateDBBackup; T: CreateDBBackup;
// U: CreateDBBackup; V: CreateDBBackup; W: CreateDBBackup; X: CreateDBBackup; Y: CreateDBBackup; Z: CreateDBBackup;
//else MsgBox(FindFiles.Name, mbCriticalError, mb_OK); {выводим имя пропущенного файла для проверки}
// end;
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;
solvador
02-03-2010, 14:06
South, ну разумеется проще :up
Я же говорю, что ни капли не программист. Хотя и LastChar (хотел сказать аналогичный пример) всё время был на виду пока листал руководства, но использовать его ума не хватило :unsure:
Спасибо!
Правда там есть архивы заканчивающиеся на 1...9. Но думаю это решается быстро.
Хм... посмотрел статьи Ерёмина, где как мне казалось видел аналогичный пример. Там такого нет, видимо ошибся...
кое-что смог сделать со множествами, оказывается они все-таки есть, только вот работать с ними как-то не очень удобно
var
c:Char;
b:byte;
MySet1: set of char;
MySet2: set of byte;
begin
MySet1:=['a','b','x','y'];
MySet2:=[byte(1),byte(2),byte(3),byte(4),byte(5),byte(6),byte(7),byte(8),byte(9)];
c:='a';
if c in MySet1 then MsgBox('c in MySet1; c = '+c, mbCriticalError, mb_OK);
b:=0;
if b in MySet2 then MsgBox('b in MySet2; b = '+IntToStr(b), mbCriticalError, mb_OK);
end;
Inno ISCmplr Setup (http://restools.hanzify.org/inno/Inno_ISCmplr_Setup100301(7zip).zip) 5.3.8 build 100301 by Restools (http://restools.hanzify.org/)
solvador
02-03-2010, 15:21
South, ещё раз Спасибо. Пригодится.
Попробовал опираясь на ваш код слегка его подправить :) Получилось так:
const
Symbol = 'cdefghijklmnopqrstuvwxyz';
procedure DBBackup();
var
FindFiles : TFindRec;
begin
CreateBackup; {вызов процедуры создания резервных копий}
if FindFirst(ExpandConstant('{app}\gamedata.db*'), FindFiles) then begin {ищем по маске файлы в директории}
repeat
if Pos(FindFiles.Name[Length(FindFiles.Name)],Symbol) > 0 then CreateDBBackup;
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;
Вроде робит... Правда нужно наверное вместо [Length(FindFiles.Name) поставить фиксированную цифру, чтобы исключить файлы типа gamedata.dbb.bak . так как они удовлетворяют маске поиска и содержат последнюю букву включённую в symbol.
solvador,
можно и так, только, если пишешь Symbol = 'cdefghijklmnopqrstuvwxyz';, то Pos(FindFiles.Name[Length(FindFiles.Name)],Symbol) лучше написать как Pos(LowerCase(FindFiles.Name)[Length(FindFiles.Name)],Symbol). вдруг расширение в верхнем регистре будет написано
чтобы исключить файлы типа gamedata.dbb.bak »
попробуй задать маску "gamedata.db?", правда не знаю будет ли работать инно с такой маской
Cartmans
02-03-2010, 16:36
svensoft, мне нужен скрипт без наворотов))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.