Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: oosppa
Дата сообщения: 04.10.2013 20:47
Подскажите, как изменить размер окна инсталлятора (стандартного вида).

Хотелось бы только изменить размер картинки на первой странице, например сделать её квадратной 314х314 (а не 164х314).
Автор: sergey3695
Дата сообщения: 04.10.2013 21:39
oosppa
Шапка -> Документация, FAQ, и различные примеры для Inno Setup ->
Пост с различными скриптами #2 -> Вставка изображения на первую и последнюю станицу
Это походу твой случай. (размер поменяешь сам WizardForm.WizardBitmapImage.Width:= ScaleX(497);
(длина) WizardForm.WizardBitmapImage2.Width:= ScaleX(497);
(высота) WizardForm.WizardBitmapImage.Height:= ScaleX(497);
WizardForm.WizardBitmapImage2.Height:= ScaleX(497);)

WizardBitmapImage - изображение на первой странице.
WizardBitmapImage2 - изображение на последней соответственно.
Автор: AngelNet
Дата сообщения: 06.10.2013 06:34
подскажите Inno Setup Uninstall Log чем можно прочесть или сконвертировать в человекопонятный вид?
Автор: bugron
Дата сообщения: 06.10.2013 17:48

Цитата:
подскажите Inno Setup Uninstall Log чем можно прочесть или сконвертировать в человекопонятный вид?

Как вариант (не самый лучший конечно) обыкновенным Notepad-ом или hex редактором.
Автор: AngelNet
Дата сообщения: 06.10.2013 20:09
bugron
как раз ими и просматривал, но хотелось бы специализированное заточенное под эти задачи средство...
ищу способ заставить деинсталятор выполнить следующую шелл-команду:
Код: taskkill /f /im App.exe /t
Автор: sjwrec
Дата сообщения: 07.10.2013 01:59
AngelNet

Цитата:
ищу способ заставить деинсталятор выполнить следующую шелл-команду:


[more=Вот]
[-code]
var
ResultCode: Integer;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('{sys}\taskkill.exe'), '/f /im App.exe /t', 'ExpandConstant('{sys}'), SW_HIDE,ewWaitUntilTerminated,ResultCode)
end;
end;
[/more]
Автор: AngelNet
Дата сообщения: 07.10.2013 03:46
sjwrec
странно, код не отрабатывает(
название секции точно должно быть
Код: [-code]
Автор: vint56
Дата сообщения: 07.10.2013 08:36
AngelNet [code] должно всегда быть так
Автор: sjwrec
Дата сообщения: 07.10.2013 11:02
AngelNet
Нет просто форум иначе ругается на не закрытый тег.
Автор: AngelNet
Дата сообщения: 07.10.2013 11:02
vint56
засунул в секцию код, вообще перестало собираться...
Автор: sjwrec
Дата сообщения: 07.10.2013 11:07
AngelNet

[more=А вот так?]
[Сode]
var
ResultCode: Integer;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('{sys}\taskkill.exe'), '/f /im App.exe /t', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
end;
[/more]

Так же хочу предупредить, что программа не проверяет есть ли процесс или нет, а просто срабатывает.
Автор: AngelNet
Дата сообщения: 07.10.2013 11:21
sjwrec
так собралось, но видимо прибитие процесса происходит слишком долго и деинсталятор не успевает удалить экзешник, о чём "радостно" сообщает по завершении своей работы...

может какой то обработчик события прикрутить или таймаут нужно?
Автор: sjwrec
Дата сообщения: 07.10.2013 11:27
AngelNet

[more=Таймер]
[Сode]
var
ResultCode: Integer;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('{sys}\taskkill.exe'), '/f /im App.exe /t', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
Sleep(7000); // 1000 = 1 сек - этот таймер не даст деинсталлятору работать пока не истечёт время.
end;
end;
[/more]

Автор: AngelNet
Дата сообщения: 07.10.2013 11:37
sjwrec
подход топорный, но работает)
а можно как то более красиво это оформить? вдруг у кого то тасккил повиснет к примеру на этом шаге.

или хотя бы сделать проверку запущенности процесса:
если процесс с данным именем НЕ запущен, то процедура бы пропускалась как и ставший ненужным таймер.
Автор: sjwrec
Дата сообщения: 07.10.2013 11:39
AngelNet
Наверное стоит освоить работу с библиотекой isTask.dll - там можно и проверять и завершать процесс.
Автор: AngelNet
Дата сообщения: 07.10.2013 11:52
пожалуй, когда будет достаточно времени обязательно это попробую.
а сейчас остался еще один вопрос.
отсюда взят код и dll-ка от Vo1T
ISWin7 v0.5 [24.03.2011]
загвоздка в том, что когда я пытаюсь включать шифрование установщика, используя билиотеку ISCrypt.dll этот замечательный код прозрачности не работает(

есть ли возможность как то подружить их?
я так понимаю iswin7.dll уже должна быть в памяти распакованной для корректной работы.
Vo1T-у я писал, он послал меня в топик спрашивать у вас.
Автор: sjwrec
Дата сообщения: 07.10.2013 12:01
AngelNet
Про эту библиотеку немного знаю, а вот как решить глюк отключения прозрачности не знаю. Сейчас пишу Вам пример работы isTask
Автор: AngelNet
Дата сообщения: 07.10.2013 12:18
sjwrec
ну в принципе криптовать инсталлер мне не критично, прятать мне нечего, просто заинтересовало)
там сборка мирки для одного игрового сервера, тем более делается всё бесплатно на голом энтузиазме.
---
от INNO я в восторге! жаль, что раньше тратил время на всякую ерунду, в т.ч. варезные софтины.
этот бесплатный продукт намного гибче и у него большое коммьюнити, которое не даст ему зачахнуть!
Автор: sjwrec
Дата сообщения: 07.10.2013 12:23
AngelNet
Временная ссылка на ваш скрипт с IsTask: http://sjwrec.no-ip.biz:8082/Taskkill.7z

Добавлено:
AngelNet
Скачали? Сервер закрыт.
Автор: AngelNet
Дата сообщения: 07.10.2013 12:38
sjwrec
процесс с установленной программой не завершается(
по окончании удаления экзешник остаётся.
добавлю что программа при своём закрытии пользователем запрашивает подтверждения для выхода из нее.
Автор: Robby
Дата сообщения: 07.10.2013 12:47
AngelNet
IsTask - не работает в Unicode версии, возможно причина в этом?
Автор: AngelNet
Дата сообщения: 07.10.2013 12:53
Robby
похоже вы правы

а в этом случае есть какие нибудь аналогичные инструменты?
Автор: Robby
Дата сообщения: 07.10.2013 13:00
AngelNet
лучше используйте ANSI версию компилятора (она более, так сказать, дружелюбна) если нет необходимости в специфических возможностях Unicode версии.
Автор: sjwrec
Дата сообщения: 07.10.2013 13:30
AngelNet
Скрипт написан для ANSI версии компилятора. Советую Вам перейти на эту версию.
Автор: AngelNet
Дата сообщения: 08.10.2013 04:20
Robby
sjwrec
использую (InnoUltra) сейчас переустановклю, отпишусь о результате...
как я и ожидал, собрать на анси компиляторе не удаётся.
скрин и сам [more=код]
Код: type
Pchar= Pansichar;

function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL; external 'AppendMenuA@user32.dll stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';
Автор: vint56
Дата сообщения: 08.10.2013 06:30
AngelNet просто в ansi версий это есть в unicode нету потому и ansi версий пишит дубликат закаментируй у себя строчку
type
//Pchar= Pansichar; вот это
Автор: AngelNet
Дата сообщения: 08.10.2013 06:57
vint56
спс, собралось. но теперь после прибития процесса запущенного приложения его экзешник всё равно не деинсталируется(
а еще программа блочит файлы логов, так что пока она выполняется логи тоже невозможно вычистить...
Автор: vint56
Дата сообщения: 08.10.2013 08:40
AngelNet
Удалит все файлы в папке app каталоге
[UninstallDelete]
Type: files; Name: {app}\*.*

Логи я как понял это реестр ну так ключам реестра добавь это Flags: uninsdeletevalue uninsdeletekeyifempty;
пример
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{4E4941E1-BDFC-4A5A-8D99-3721B4650281}; ValueType: string; ValueName: InstallLocation; ValueData: {app}; Flags: uninsdeletevalue uninsdeletekeyifempty;

IsTask v1.0.1 компилятор только ansi там пример при установки закрывает приложения и при дейнсталяций закрывает приложения
http://rghost.ru/49236509
Автор: AngelNet
Дата сообщения: 08.10.2013 09:16

Цитата:
Удалит все файлы в папке app каталоге
[UninstallDelete]
Type: files; Name: {app}\*.*

vint56
спасибо, код работает просто шикарно!

скажите, а разве это не делает примерно тоже самое?
Код: [UninstallDelete]
Type: "filesandordirs"; Name: "{app}"
Автор: DICI BF
Дата сообщения: 08.10.2013 10:21
AngelNet

[UninstallDelete]
Type: "filesandordirs"; Name: "{app}"
Удаляет файлы и каталог программы
--------------------------------------------
[UninstallDelete]
Type: files; Name: {app}\File1
Удаляет только файлы которые вы зададите
--------------------------------------------
[UninstallDelete]
Type: dirifempty; Name: {app}\Dir1
Удаляет только папки которые вы зададите
--------------------------------------------
Вроде бы это в справке есть

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.