Войти

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


Страниц : 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

valyok666
03-11-2011, 15:12
kindza811, никто тебе его не даст)делай сам)
там вроде рисованые картинки,ну остальное всё ботва)

Gugle
03-11-2011, 17:36
Как принудительно кинуть установщик на страницу "Финиш"?
Так, что бы после этого скрипт завершил свою работу при любом варианте.

Можно как нибуть получить список файлов и папок в указанной папке?

З.Ы.
2 предыдущих вопроса все еще актуальны.

Rikill
03-11-2011, 21:54
Gugle, когда именно надо кинуть установщик на финиш?

Sotonisto
04-11-2011, 18:08
Всем доброго времени суток! У меня есть скрипт (http://rghost.ru/28525441) с наложением изображения на кнопки. Как можно сделать, чтобы у кнопки "Обзор" было отдельное изображение (например, button2.bmp)? Видел несколько примеров, но одни не работают, а другие - заменяют текстуры на всех кнопках :(

Rikill
04-11-2011, 20:30
Sotonisto, накладывать, а не налаживать. Это не от слова лажа, а от слова класть! :read:
Скачать переделанное. (http://rghost.ru/28549741)
Если надо, то текст убери с кнопки "Обзор..." коммандой:
[Messages]
rus.ButtonWizardBrowse=

[hr]
Всё для Вас. :)

Sotonisto
05-11-2011, 03:37
Rikill, спасибо :)

накладывать, а не налаживать. Это не от слова лажа, а от слова класть! »
Прошу прощения. У меня в школе не преподавали русский язык (за исключением уроков русской литературы) и на работе почти вся документация на украинском :(
Но впредь буду более внимательным.

VASYAKRN
05-11-2011, 11:58
у кого имеются Ukrainian.isl

insombia
05-11-2011, 19:02
VASYAKRN у меня

VASYAKRN
05-11-2011, 19:12
insombia, У меня уже есть
спасиба

oxsa91
05-11-2011, 20:05
Есть небольшое приложение, и созданый под него инсталятор. Должно все устанавливаться в IIS7. Раньше работала с IIS6, проблем не возникало а теперь пишет вот это

C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "Set-Executi onPolicy RemoteSigned -Scope CurrentUser"
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -File "C:\DOCUME~1\93 35~1\LOCALS~1\Temp\2\is-GJ8K0.tmp/IIS7_0_6_0.ps1"
Начата регистрация ASP.NET (4.0.30319) в W3SVC/.
Завершена регистрация ASP.NET (4.0.30319) в W3SVC/.
Нельзя вызвать метод для выражения со значением NULL.
C:\Documents and Settings\Администратор\Local Settings\Temp\2\is-GJ8K0.tmp\IIS7 _0_6_0.ps1:11 знак:30
+ $id = $webServer.Path.Replace <<<< ("IIS://localhost/W3SVC/", "")
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeEx ception
+ FullyQualifiedErrorId : InvokeMethodOnNull
Сервер сценариев Windows (Microsoft R) версия 5.6 c
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

ErrNumber: -2147463168 (0x80005000)
Error Trying To Get the Object: W3SVC/
Сервер сценариев Windows (Microsoft R) версия 5.6 c
Корпорация Майкрософт (Microsoft Corp.), 1996-2001.
Все права защищены.

ErrNumber: -2147463168 (0x80005000)
Error Trying To Get the Object: W3SVC//root
Сервер сценариев Windows (Microsoft R) версия 5.6 c
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

ErrNumber: -2147463168 (0x80005000)
Error Trying To Get the Object: W3SVC//root
Сервер сценариев Windows (Microsoft R) версия 5.6 c
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

ErrNumber: -2147463168 (0x80005000)
Error Trying To Get the Object: W3SVC//root
Сервер сценариев Windows (Microsoft R) версия 5.6 c
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

ErrNumber: -2147463168 (0x80005000)
Error Trying To Get the Object: W3SVC//root
Произошла ошибка при вызове метода, так как [System.Object[]] не содержит метод с именем "Start".
C:\Documents and Settings\Администратор\Local Settings\Temp\2\is-GJ8K0.tmp\IIS7 _0_6_0.ps1:17 знак:17
+ $webServer.Start <<<< ()
+ CategoryInfo : InvalidOperation: (Start:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "Set-Executi onPolicy Restricted -Scope CurrentUser"
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "exit"
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>sqlcmd -s CSU-DEVELOPER 1>


Все ошибки гуглила, не особо помогает. Может быть кто сталкивался?


Если что скрипт вшитый в установочник:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -sn W3SVC/
$newWebSiteName = "PhoneDict"
$newWebSitePath = "C:\inetpub\wwwroot\PhoneDict"
$iisWebService = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService"
$bindingClass = [wmiclass]'root\MicrosoftIISv2:ServerBinding'
$bindings = $bindingClass.CreateInstance()
$bindings.Port = "80"
$result = $iisWebService.CreateNewSite($newWebSiteName, $bindings, $newWebSitePath)
$iis = [ADSI]"IIS://localhost/W3SVC"
$webServer = $iis.psbase.children | where { $_.keyType -eq "IIsWebServer" -AND $_.ServerComment -eq $newWebSiteName}
$id = $webServer.Path.Replace("IIS://localhost/W3SVC/", "")
cscript "C:\inetpub\AdminScripts\adsutil.vbs" set W3SVC/$id/DefaultDoc "main.aspx"
cscript "C:\inetpub\AdminScripts\adsutil.vbs" set W3SVC/$id/root/accessRead "true"
cscript "C:\inetpub\AdminScripts\adsutil.vbs" set W3SVC/$id/root/accessScript "true"
$webServer.Start()
exit

valyok666
05-11-2011, 20:22
VASYAKRN, извините за мой русский

VASYAKRN
05-11-2011, 21:08
valyok666, Спасиба

serg aka lain
06-11-2011, 05:48
Инсталлятор может после установки сам себя скопировать? »
FileCopy(ExpandConstant('{srcexe}'), 'C:\Test\test.exe', False);


#define AppName "My Program";

[Setup]
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AllowNoIcons=True
OutputDir=userdocs:InnoSetupTest.

[Code]
procedure MyFileCopy();
var
s1, s2: string;
ResultCode: Integer;
begin
s1:= ExpandConstant('{sd}\MyFileCopy.cmd');
s2 := 'copy ' + AddQuotes(ExpandConstant('{srcexe}'))
+ ' ' + AddQuotes(AddBackSlash(ExpandConstant('{sd}')) + 'Test\test.exe') + #10#13 +
+ 'del ' + s1;
SaveStringToFile(s1, s2, False);

if not DirExists(ExpandConstant('{sd}\Test')) then
CreateDir(ExpandConstant('{sd}\Test'));
Exec(s1, '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
MyFileCopy();
end;

З.Ы.С кириллицей в пути не сработает.

Sotonisto
06-11-2011, 20:12
1. Как осуществить разбивку .arc архива на диски (игра, сжатая FreeArc'ом весит ~9.5Gb)?
Хотелось бы разместить, например, 2 архива на 2 DVD и чтобы после окончания распаковки 1 архива, выводилось сообщение "Вставьте диск 2" и т.п.
Нашел такой пример, но не особо понял что делать (у меня требует 2й диск даже не начав установку).
if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW2_Disk2.arc' ) then break;
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\rustext.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ISArcExtract ( 2, 0, ExpandConstant('{src}\engtext.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ISArcExtract ( 3, 0, ExpandConstant('{src}\rusvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ShowChangeDiskWindow('Пожалуйста, вставьте первый диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc' ) then break;
2. Для чего нужен файл records.inf (он у меня создается после установки)? Из-за него я не могу установить игру (если файлы инсталла находятся в образе).
После окончания распаковки афхива инсталл просто закрывается (нет ни финишной страницы, ни инсталляции доп. по) :(

Gnom_aka_Lexander
06-11-2011, 20:25
З.Ы.С кириллицей в пути не сработает. »
Продолжим тему :) Вот так, работает и с кирилицей:

#define AppName "My Program";

[Setup]
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AllowNoIcons=True
OutputDir=userdocs:InnoSetupTest.

[*code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

function CopyFile(ExistingFile,NewFile: PAnsiChar;bFailIfExists: Boolean): Boolean;
external 'CopyFile{#A}@Kernel32.dll stdcall';

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
CreateDir(ExpandConstant('{sd}\тест'));\\ папку нужно создать зарание.
CopyFile(ExpandConstant('{srcexe}'),ExpandConstant('{sd}\тест\test.exe'),True);
end;

Rikill
06-11-2011, 21:05
Alim13, :o

Sotonisto, для чего нужен records.inf посмотри в справке к ISDone.


if not ISArcExtract ( 0, 0, ExpandConstant('{src}\1 архив.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\2 архив.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'3 архив на 2 диске.arc') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\4 на диске.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\5 на диске.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;


Ну или эксперементируй :) .

serg aka lain
06-11-2011, 22:27
Продолжим тему Вот так, работает и с кирилицей »
Ценная таки мысль, только в твоём примере будет работать только в ANSI, в Unicode не сработает, так как функция CopyFile
в юникоде выглядит так:

function CopyFile(ExistingFile,NewFile: String; bFailIfExists: Boolean): Boolean;
external 'CopyFileW@Kernel32.dll stdcall';

#ifdef UNICODE
#define PChar = "String"
#define A = "W"
#else
#define PChar = "PChar"
#define A = "A"
#endif

function CopyFile(ExistingFile,NewFile: {#PChar}; bFailIfExists: Boolean): Boolean;
external 'CopyFile{#A}@Kernel32.dll stdcall';

Gnom_aka_Lexander
06-11-2011, 22:32
serg aka lain, Внимательней посмотри мой пример.
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif »external 'CopyFile{#A}@Kernel32.dll stdcall'; » Про то, что инно не перенаправляет это дело автоматом, уже научен неприятным опытом :)

serg aka lain
06-11-2011, 22:43
Внимательней посмотри мой пример »
Я имел в виду этот момент

function CopyFile(ExistingFile,NewFile: String; bFailIfExists: Boolean): Boolean;
external 'CopyFileW@Kernel32.dll stdcall';

Sotonisto
07-11-2011, 00:05
Rikill, спасибо :) Немного изменил твой пример и все получилось ^^
Но появилась другая проблема: прогресс-бар доходит до конца еще во время распаковки 1-го архива :( + у меня прогресс показан %, так вот, после распаковки 3х архивов отображается 300% :(
Как это исправить? Вот скрипт (http://rghost.ru/28851251) инсталла.




© OSzone.net 2001-2012