Войти

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


Страниц : 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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 [181] 182 183 184 185 186 187 188

Rikill
20-10-2011, 17:32
valyok666, WizardForm тоже форма. Только она уже создана. Но на неё ты ставишь ведь картинки и кнопки, правильно? Вот так-то.

valyok666
20-10-2011, 17:44
Rikill, ок но мне интереснее реализовать через ботву

Sollar
20-10-2011, 17:58
интересует вопрос, как сделать чтобы при инсталяции не создавалась папка?
и как зашифровать в поле вводимую информацию?

Edison007
20-10-2011, 18:15
valyok666, ну если я правильно понял надо такое: http://rghost.ru/26396871
описания нет, но думаю разобраться не сложно...

P.s. Отдельное спасибо пользователю nik1967 ;) за пример.

Vista-w
20-10-2011, 18:29
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!

Gugle
21-10-2011, 10:50
Доброго времени суток!

Работаю с 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;

Помогите правильно привести типы.

Sollar
21-10-2011, 11:38
murlakatamenka, даже проще Page.Add('USERVERIFYPWD:', true);
хотя я наверное неточно выразился, надо просто скрыть

LLIARK
21-10-2011, 16:06
Подскажите плиз. как решить проблему
Собсна вот в чем дело.
Я скачал скрипт,всё работает нормально.
В скрипте есть такая строка

//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

LLIARK
21-10-2011, 16:44
большое спасибо
но после появления картинки выскакивает

Runtime error

Could not call proc

valyok666
21-10-2011, 16:46
LLIARK, а вот это надо смотреть скрипт)надо старое от AdvSplash удалить)
кидай скрипт)

LLIARK
21-10-2011, 16:57
сможешь помочь если скрипт скину?))

я заменил старый код на этот

//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, давай сделаю токо попозже=)

LLIARK
21-10-2011, 17:16
Благодарочка заранее))

вот архив со всем http://depositfiles.com/files/wlzae9r1q
жду...))




© OSzone.net 2001-2012