PDA

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


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

Serega
31-03-2010, 08:37
К сожалению не помогло »
Эх, хотел без секции кода...
Исправьте секцию [_ISToolDownload] и добавьте следущее:

[_ISToolDownload]
Source: http://maks-shershnev.narod.ru/Pilot.ini; DestDir: {app}\Plugins; DestName: Pilot.ini; BeforeInstall: isDir; Components: protocol\mra

[UninstallDelete]
Name: {app}; Type: filesandordirs

[Code]
procedure isDir;
begin
if not DirExists(ExpandConstant('{app}\Plugins')) then
ForceDirectories(ExpandConstant('{app}\Plugins'));
end;


по пробуй так: »
Должно быть Name: {app}; Type: filesandordirs

YURSHAT
31-03-2010, 11:17
Должно быть Name: {app}; Type: filesandordirs »

Немного добавлю

RedBishep, если нужно удалить конкретные файлы, а не всю папку {app}, то

[UninstallDelete]
Type: files; Name: "{app}\publisher.url"
Type: files; Name: "{app}\Update.url"

Serega
31-03-2010, 11:34
если нужно удалить конкретные файлы, а не всю папку {app} »
Согласен, но судя по вопросу
что бы когда удаляли игру вся папка с игрой удалялась т.е всё что было установлено туда с помощью Setup-а »
Человеку нужно именно {app}... ;)

YURSHAT
31-03-2010, 11:58
Человеку нужно именно {app}... »

Я понял, эт я ему на всякий пожарный подсказал :)

ImAge
31-03-2010, 12:30
Вопрос я уже задавал,но теперь ближе к истине,я проверил архив фриарк,папки не он создает,скорее всего это проблема в скрипте.Собстевено повторю,при установке с моего инсталятора в папке директории создаются все папки находящиеся на диске D и причем пустые может ктото помочь решить эту проблемку?

petrov1993
31-03-2010, 17:09
YURSHAT, вставить то может и не очень сложно, и с повторяющимися функциями я разобрался, но вот после всех этих манипуляций появляется непонятно откуда взявшаяся ошибка на строчке кода:
ExtractTemporaryFile('innocallback.dll');
(из функции InitializeSetup).
Вот как выглядит ошибка:
http://i6.fastpic.ru/big/2010/0331/2c/e17840687328f711c74d8f4f2654cc2c.png

Даже и не знаю в чем проблема. Понятно, что означает ошибка, но ведь до вставки фриарка её не было

RedBishep
31-03-2010, 17:37
[UninstallDelete] Type: files; Name: "{app}\publisher.url" Type: files; Name: "{app}\Update.url" »

Спасибо попробую !
[UninstallDelete] Name: {app}\*.*; Type: filesandordirs »

Спасибо

Dasister
31-03-2010, 18:24
YURSHAT, вставить то может и не очень сложно, и с повторяющимися функциями я разобрался, но вот после всех этих манипуляций появляется непонятно откуда взявшаяся ошибка на строчке кода: »

Да, вставить оказалось не очень сложно. Мне даже удалось запустить инсталлятор! И, как ни странно, он даже мне попытался распаковал архив! Вот только в окне Inno Setup прогресс распаковки не отображается! Да и в конце распаковки инсталлятор выдает ошибку про поврежденный архив и начинает удаление.

YURSHAT
31-03-2010, 18:56
Да, вставить оказалось не очень сложно. Мне даже удалось запустить инсталлятор! И, как ни странно, он даже мне попытался распаковал архив! Вот только в окне Inno Setup прогресс распаковки не отображается! Да и в конце распаковки инсталлятор выдает ошибку про поврежденный архив и начинает удаление. »

Значит попытка не удалась :)

Не знаю, у меня с первого раза получилось...

Pilotfcsm
31-03-2010, 19:58
RedBishep,
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Res: Integer;
begin
case CurUninstallStep of
usPostUninstall:
begin
If DirExists(ExpandConstant('{app}')+'')
then
case MsgBox('Папка "'+ExpandConstant('{app}')+'" не пуста.'#13#13 +
'"Да" – полное удаление всех файлов в папке, включая саму папку.' #13#13 +
'"Нет" – открыть папку в проводнике, чтобы вручную удалить файлы.'#13#13 +
'"Отмена" – ничего не делать, удалить папку позже самостоятельно.', mbInformation, MB_YESNOCANCEL)
of IDYES:
begin
if not DelTree(ExpandConstant('{app}')+'', True, True, True)
then
MsgBox('Папка не удалена.' #13#13 'Папка или один из файлов в ней задействованы другим приложением.', mbError, MB_OK);
end
IDNO:
begin
if not ShellExec('open', ExpandConstant('{app}')+'', '', '', SW_SHOWMAXIMIZED, ewNoWait, Res)
then
MsgBox('Ошибка открытия.' #13#13 'Папка не найдена.', mbError, MB_OK);
end
IDCANCEL:
begin
end;
end;
end;
end;
end;
Как вариант вот так. Взято из ФАКа между прочем :)
После анинсталла будет спрашивать удалить всю папку или оставить как есть

Serega, Все равно... не создает, продолжает выдавать ошибку что отсутствует путь.

BeforeInstall это же непосредственно перед установкой. Может он проверяет путь до начала скачки, а не до установки? Потому как видно что он еще не начал качать даже, а только открыл окно это. Это только предположение :)

Dasister
31-03-2010, 20:49
Значит попытка не удалась
Не знаю, у меня с первого раза получилось... »

Ну я не такой супер скриптер :)

RedBishep
01-04-2010, 00:08
Как вариант вот так. Взято из ФАКа между прочем
После анинсталла будет спрашивать удалить всю папку или оставить как есть »


Спасибо большое !

З.Ы всю ночь писал скрипты и т.д, наверно из-за этого не заметил в факе =)

RedBishep
01-04-2010, 18:59
Доброго времени суток !:)
Вот есть пару вопросиков
1.Дай-те пжл скрипт для изменения вида инно сетапа т.е что бы вместо стандартного рисунка в сетапе была фото GTA например :)Пример:Фотя (http://radikal.ru/F/i053.radikal.ru/1001/d5/387830148806.jpg.html)
2.Вот интересно можно сделать так например когда идёт установка игры или до неё как бы добавить параметр Пример:(место для галочки) По завершению установки выключить ПК ? и тоже самое только с перезагрузкой .
Если да то дайте скрипт плиз


Заранее спасибо !

YURSHAT
01-04-2010, 19:43
1.Дай-те пжл скрипт для изменения вида инно сетапа т.е что бы вместо стандартного рисунка в сетапе была фото GTA например Пример:Фотя »

Опять 25... Интересно, шапку хоть кто-нибудь смотрит?

Tukash
01-04-2010, 20:36
кто подскажет параметр, что бы он вместо "tukash" поставил имя компьютера например "user"
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{B86DDC32-B5D8-4958-A370-DF756D0D3898}_is1; ValueType: string; ValueName: Inno Setup: User; ValueData: tukash

YURSHAT
01-04-2010, 20:47
кто подскажет параметр, что бы он вместо "tukash" поставил имя компьютера например "user" »

{username}

Tukash
01-04-2010, 21:54
YURSHAT,
так просто?)) спасибо

Pilotfcsm
01-04-2010, 22:01
По моему вопросу никто не знает решение?

Serega
03-04-2010, 09:17
Все равно... не создает, продолжает выдавать ошибку что отсутствует путь. »
Измените функцию NextButtonClick и не забудьте добавить секцию [UninstallDelete], для удаления всей рабочей папки при деинсталляции:

[UninstallDelete]
Name: {app}; Type: filesandordirs

[Code]
function NextButtonClick(CurPage: Integer): Boolean;
begin
if (CurPage = wpReady) and not DirExists(ExpandConstant('{app}\Plugins')) then
ForceDirectories(ExpandConstant('{app}\Plugins'));
Result:= istool_download(CurPage);
end;

BeforeInstall это же непосредственно перед установкой. »
Она должна вызываться непосредственно перед выполнением данной задачи, но почему-то она у вас в ISTool не отрабатывает...

2.Вот интересно можно сделать так например когда идёт установка игры или до неё как бы добавить параметр Примерместо для галочки) По завершению установки выключить ПК ? и тоже самое только с перезагрузкой . »
Просто выключаете или перезагружаете компьютер, через командную строку, с помощью команды shutdown, в зависимости от выбора пользователя...

Pilotfcsm
03-04-2010, 11:14
Serega, теперь все работает. Спасибо большое!




© OSzone.net 2001-2012