Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
valyok666, WizardForm тоже форма. Только она уже создана. Но на неё ты ставишь ведь картинки и кнопки, правильно? Вот так-то.
valyok666
20-10-2011, 17:44
Rikill, ок но мне интереснее реализовать через ботву
интересует вопрос, как сделать чтобы при инсталяции не создавалась папка?
и как зашифровать в поле вводимую информацию?
Edison007
20-10-2011, 18:15
valyok666, ну если я правильно понял надо такое: http://rghost.ru/26396871
описания нет, но думаю разобраться не сложно...
P.s. Отдельное спасибо пользователю nik1967 ;) за пример.
Sollar,
1) - UninstallFilesDir={app}\Uninstall
2) Поподобнее
Sotonisto
20-10-2011, 18:33
вот похожий (там есть и другие скрипты) »
Да, почти такой же :) Только в RE4 не было внешней рамки. Как ее можно убрать?
http://img443.imageshack.us/img443/1272/imgmt.gif
я сделаю возможность включать/отключать ISDone в скрипте через препроцессор (закомментил 1 строку - инновское lzma, раскомментил - ISDone. + по блоку #ifdef ISDone ... #endif можно будет увидеть код от ISDone), а вы освоите ISDone и FreeArc, по рукам? »
Не гаратирую что освою все и сразу ))
valyok666
20-10-2011, 18:39
Sotonisto, там через ботву реализовано)стандартными вроде не сделать так)там скрывается BorderStyle := bsNone;
6apakyda
20-10-2011, 19:40
6apakyda, почему бы Вам не взять за основу стандартный скрипт?
Например:
Код:
[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom
[Components]
Name: prog; Description: Установить Adobe Reader для:; Types: custom; Flags: fixed;
Name: prog/1; Description: Win XP; Flags: exclusive
Name: prog/2; Description: Win Vista; Flags: exclusive
Name: prog/3; Description: Win 7; Flags: exclusive
[Run]
Filename: {src}\programs\reader_xp.exe; Components: prog/1; Flags: nowait skipifsilent;
Filename: {src}\programs\reader_vista.exe; Components: prog/2; Flags: nowait skipifsilent;
Filename: {src}\programs\reader_seven.exe; Components: prog/3; Flags: nowait skipifsilent;
Вам только прийдется скрыть инсталляцию программы через Parameters и добавить StatusMsg. »
Так в итоге всё равно распаковываются все файлы, а это занимается значительное время
Sotonisto
20-10-2011, 20:09
valyok666, спасибо. Я добавил эту строку и рамка действительно исчезла. А как сделать кнопки для закрытия и сворачивания? :)
Так в итоге всё равно распаковываются все файлы, а это занимается значительное время »
Что-то не пойму о каких файлах идет речь. Если же Вы имеете в виду установку AR перед основной программой - можно просто удалить флаг nowait. Или я не так все понял?
murlakatamenka
20-10-2011, 22:08
интересует вопрос, как сделать чтобы при инсталяции не создавалась папка?
и как зашифровать в поле вводимую информацию? »
CreateAppDir=no
кстати, даже в мастер можно указать, что приложение не требует папки. В этом случае DefaultDirName, естественно, уже не надо.
для ввода пароля есть специальный контрол PasswordEdit. Берём расширенный компилятор и вперёд, разбираццо :)
А как сделать кнопки для закрытия и сворачивания? »
по умолчанию стиль WizardForm:
BorederStyle:=BsDialog;
Не гаратирую что освою все и сразу )) »
это значит да? :)
6apakyda
21-10-2011, 00:01
Что-то не пойму о каких файлах идет речь. Если же Вы имеете в виду установку AR перед основной программой - можно просто удалить флаг nowait. Или я не так все понял? »
Вы не так поняли, мой установщик включает 3 файла которые уже являются установщиками программы. В меню есть выбор версии виндовса, и в зависимости от того какую ОС выбрали устанавливается 1 из 3х файлов, НО какую бы не выбрали программу распаковываются все 3!
Доброго времени суток!
Работаю с XML. Вот функция:
function addAttributeXML(fileName, nameElement, addAttribute, dataAttribute: String): Boolean;
var
xmlParser, rootElement, str: Variant;
i: Byte;
MD5: String;
begin
if not FileExists(fileName) then Exit;
MD5 := GetMD5OfFile(fileName);
try
xmlParser := CreateOleObject('Microsoft.XMLDOM');
except
ShowExceptionMessage;
Exit;
end;
xmlParser.async := False;
xmlParser.load(fileName);
rootElement:= xmlParser.getElementsByTagName(nameElement);
for i := 0 to rootElement.length-1 do begin
str := rootElement.item[i].getAttribute('attr');
MsgBox(str, mbError, MB_OK); // Тут ошибка с приведением типов. Не могу разобраться без помощи.
rootElement.item[i].setAttribute(addAttribute, dataAttribute);
end;
xmlParser.save(fileName);
Result := (MD5 <> GetMD5OfFile(fileName));
end;
Помогите правильно привести типы.
murlakatamenka, даже проще Page.Add('USERVERIFYPWD:', true);
хотя я наверное неточно выразился, надо просто скрыть
Подскажите плиз. как решить проблему
Собсна вот в чем дело.
Я скачал скрипт,всё работает нормально.
В скрипте есть такая строка
//SPLASH Screen
procedure callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PChar);
external 'callplug@files:callnsis.dll stdcall';
procedure CreatSplash();
begin
ExtractTemporaryFile('splash.bmp')
// ExtractTemporaryFile('splash.wav') -звук во время появления сплэш скрина
ExtractTemporaryFile('AdvSplash.dll')
callplug(0,ExpandConstant('{tmp}\AdvSplash.dll'),'show','5000','2000','1500','-1',ExpandConstant('{tmp}\splash'),'','','','','')
end;
мне надо чтоб splash.bmp был формата PNG
но когда я в скрипте вместо bmp переименовую в png и заменяю картинку на формат png (картинка уже другая) в папке с файлами.
то картинка попросту не появляется...
Что делать,как вместо bmp поставить png?
valyok666
21-10-2011, 16:20
LLIARK, Вот библиотека там пример есть=) (http://rghost.ru/26520901)
AdvSplash.dll вроде не поддерживает PNG
большое спасибо
но после появления картинки выскакивает
Runtime error
Could not call proc
valyok666
21-10-2011, 16:46
LLIARK, а вот это надо смотреть скрипт)надо старое от AdvSplash удалить)
кидай скрипт)
сможешь помочь если скрипт скину?))
я заменил старый код на этот
//SPLASH Screen
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard;
begin
ExtractTemporaryFile('Spalsh.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Spalsh.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;
а AdvSplash больше негде в скрипте нету....
valyok666
21-10-2011, 17:03
LLIARK, давай сделаю токо попозже=)
Благодарочка заранее))
вот архив со всем http://depositfiles.com/files/wlzae9r1q
жду...))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.