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

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

Автор: Cryzer
Дата сообщения: 05.11.2007 16:42
Люди добрые и не очень! Помогите решить задачку!
Для примера привёл [more=код]
Код: if (RegQueryStringValue(HKCU, 'Software\Classes\AudioCD\DefaultIcon', '', String)) and (UpperCase(String) = UpperCase('C:\Program Files\BSplayer Pro\bsplayer.exe,0')) then
и т.д.
Автор: iTASmania_Inc
Дата сообщения: 05.11.2007 21:38
Cryzer
Первый вопрос (насколько понял):
if (RegQueryStringValue(HKCU, 'Software\Classes\AudioCD\DefaultIcon', '', String)) and
(Pos(UpperCase('bsplayer.exe,0'), UpperCase(String)) > 0) then

Добавлено:
Второй вопрос:
[more=Подробнее...]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
String: String;
begin
if CurUninstallStep = usUninstall then
if (RegQueryStringValue(HKCU, 'Software\Classes\.3gp', '', String)) and (UpperCase(String) = UpperCase('BSPlayerFile.3gp')) then
begin
RegDeleteValue(HKCU, 'Software\Classes\.3gp', '')
RegDeleteKeyIfEmpty(HKCU, 'Software\Classes\.3gp')
end
end;
[/more]
Вместо usUninstall можете использовать также: usAppMutexCheck, usPostUninstall, usDone - хотя бы ради интереса/эксперимента/повышения уровня знаний стоит попробовать.


Добавлено:
P.S.: не забывайте про операторные скобки begin ... end, а также указывайте CurStep, на которой идёт проверка условия, в противном случае, подобная проверка будет выполняться на каждой новой странице.
Автор: EagleSH
Дата сообщения: 06.11.2007 15:32
Господа, есть ли у когото готовые примеры окна установки? ну типа чтоб было симпотишное все дела?
Автор: Alex Zaguzin
Дата сообщения: 06.11.2007 16:18

Цитата:
Господа, есть ли у когото готовые примеры окна установки? ну типа чтоб было симпотишное все дела?
- в шапке же есть от Виктора Доброва и ещё кое-какие в теме проскакивали, если я правильно тебя понял.
Автор: EagleSH
Дата сообщения: 06.11.2007 16:40
Alex Zaguzin

Цитата:
- в шапке же есть от Виктора Доброва и ещё кое-какие в теме проскакивали, если я правильно тебя понял.

пральна - что, только один от Доброва? более нету? тыкни носом плиз.
Автор: Alex Zaguzin
Дата сообщения: 06.11.2007 16:57
EagleSH - поищи в предыдущих частях темы, например вот - http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=900#13
Ранее много выкладывали, вот бы объеденить их все со скринами в одном посте...было бы прекрасно.
Автор: iTASmania_Inc
Дата сообщения: 07.11.2007 01:31
EagleSH
Не знаю, может уже нашли, но здесь скины Samprona:
http://data.cod.ru/41502473674

Добавлено:
А здесь скин Sero:
http://data.cod.ru/33677540810
Автор: EagleSH
Дата сообщения: 07.11.2007 10:03
Alex Zaguzin
iTASmania_Inc
спасибо господа.
Автор: Sergey_AV
Дата сообщения: 07.11.2007 10:18
Люди, подскажите - просто банально туплю: надо в процессе установки (точнее, уже после нее) запустить установленную программу с ключом типа хх.ехе /х, чтобы прописались ассоциации на файлы. Никак не соображу, как это сделать - ткните, что ли куда . Или лучше готовым примером...

ЗЫ. Программер я аховый, поэтому все обычно делаю "по подобию" .
Автор: vserd
Дата сообщения: 07.11.2007 11:53
Sergey_AV
[Run]
Filename: "{pf}\xx\хх.ехе" ; Parameters: " /x"; Flags: runhidden waituntilterminated

только {pf}\xx\ может у тебя отличаться и с флагами возможно поиграешся.

Автор: iTASmania_Inc
Дата сообщения: 07.11.2007 11:58
Sergey_AV
Взято из хэлпа (про секцию [Run]):
[more=Подробнее...]
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

[Run]
Filename: "{app}\MyProg.exe"; Parameters: "/x"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent
[/more]

Добавлено:
Извиняюсь, опередили...
Автор: Sergey_AV
Дата сообщения: 07.11.2007 13:06
vserd
Спасибо.

iTASmania_Inc
Еще раз спасибо, вопрос уже решен. Что-то меня сегодня просто клинит, да и опыта маловато...
Автор: Gerrr
Дата сообщения: 07.11.2007 14:50
Многоуважаемые подскажите пожалуйста. Как можно данные хранящиеся в ini-файле засосать в userpage. Я так понимаю это делается в разделе CODE, но как-то у меня не выходит красиво все сделать, а парсить своими силами инишник по-моему не совсем правильно.
Автор: Cryzer
Дата сообщения: 07.11.2007 18:56
iTASmania_Inc
Пятый раз спасибо! Кстати, даже без некоторых begin'ов и end'ов всё прекрасно работает ...

Но вот ещё, на чём я запоролся: короче, опять посмотрите пример:

Код: if (RegQueryStringValue(HKCU, 'SOFTWARE\Classes\AudioCD', '', String)) and (String = '') then
Автор: vserd
Дата сообщения: 08.11.2007 09:42
Cryzer
смотри справку по RegOpenKeyEx.
В первом приближении, это просто результат прочтения доки:

res : Longword;

RegOpenKeyEx(HKCU, 'SOFTWARE\Classes\AudioCD', 0,0, Res)
if Res <> 0
then Значение существует
else Значения нет.



Автор: maxdddca123
Дата сообщения: 08.11.2007 10:56
Подскажите самый простой способ как перед установкой удалить все файлы по маске из папки установки ВКЛЮЧАЯ ПОДКАТАЛОГИ ? Аналог команды del /S
Автор: Cryzer
Дата сообщения: 08.11.2007 11:34
vserd
Хм... твой совет я так и не понял, но зато случайно смог составить то, что мне нужно, а именно:
Код: if (not RegValueExists(HKCU, 'Software\Classes\AudioCD', '')) then
Автор: EagleSH
Дата сообщения: 08.11.2007 13:14
подскажите господа:
нужен код, который проверяет запущена ли программа установки, и если запущена - просто выходит с процесса.

тоесть, запускаем к примеру eagle.exe (установочный), и если уже запущена установка (eagle.exe), простой выход с процесса.
Автор: Victor_Dobrov
Дата сообщения: 08.11.2007 14:33
EagleSH, если сообщение не нужно, убери MsgBox...

[Setup]
AppName=AlreadyRun
AppVerName=AlreadyRun
CreateAppDir=false

[Code]
Function InitializeSetup: Boolean;
    Begin
        If FindWindowbyWindowName(Copy(SetupMessage(msgSetupWindowTitle), 1, Length(SetupMessage(msgSetupWindowTitle))-2) + '{#SetupSetting("AppName")}') > 0 then MsgBox('Мастер установки данной программы уже запущен!', mbInformation, MB_OK) else Result:= true
    End;
Автор: EagleSH
Дата сообщения: 08.11.2007 14:40
Victor_Dobrov
то шо надо! пасиб.

Добавленно:
хм, код добавляю в свой скрипт, такое впечатление, что он вообще не обрабатывается, есть какойто нюанс?

а если сделать пустой проект и туда добавить - всё ок.

все - разобрался... пасиб.
Автор: SerIg
Дата сообщения: 08.11.2007 16:02
Есть русская версия под Висту и с Мастером???
Автор: Alex Zaguzin
Дата сообщения: 08.11.2007 16:53
SerIg - если ты про Инно, то последняя версия есть в шапке, а русик я выкладывал страницу назад, а по части Висты - то на Висте Инно работает.
Автор: SerIg
Дата сообщения: 08.11.2007 17:10
Alex Zaguzin
спасибо!
Автор: CapsLosk
Дата сообщения: 10.11.2007 06:58
Помогите кто нить......
Нужно сделать инсталлятор кодека DivX (только его) - но ничего не выходит
Запускаю родной инсталлятор, отслеживая изменения в реестре и файловой системы.
Вроде сохраняю все, удаляю DivX родным деинсталлятором, копиркю вручную сохраненые файлы и реестра в том числе....... запускаю AVI...И НИФИГА!!!
Попробуйте кто нить ,ПЛИЗЗ, мож получится...ОЧЕНЬ надо!
Автор: SSchumi
Дата сообщения: 10.11.2007 08:25
У меня при инсталяции в system32 кидается ряд dll и bpl. Бывает, что запущенны сторонние программы, которые их используют в данный момент, тогда инно выводит предупреждение, что не может переписать файл, нажимаю "пропустить" и всё становится нормально. Но неприятно, можно ли сделать, чтобы при копировании файла, если не может переписать, то и ладно, но чтобы мессагу не показывала.
Автор: iTASmania_Inc
Дата сообщения: 10.11.2007 12:10
SSchumi
Попробуйте использовать флаг restartreplace, тогда указанные Вами файлы будут заменяться при перезагрузке.
Автор: CapsLosk
Дата сообщения: 10.11.2007 17:30
Вроде победил.....
Осталась одна проблема- иногда видео проигрывается вверх ногами - как это победить???
Автор: iTASmania_Inc
Дата сообщения: 11.11.2007 14:46
Подскажите, пожалуйста, как с помощью препроцессора проверить наличие и целостность (посредством MD5) определённого файла, находящегося в папке вместе со скриптом. Если проверка выполняется, то включить его в инсталлятор, если нет, то отменить/прекратить/не производить компиляцию.
Заранее СПАСИБО!

Добавлено:
И ещё: может быть, у кого-нибудь есть наметки того, как свернуть инсталлятор в панель задач?
Автор: Forslay
Дата сообщения: 11.11.2007 21:05
Люди подскажите пожалуйста, как сделать так что, бы проверялось несколько процессов, а не один 'hl.exe' в этом коде:


****************************************************************************

begin
If RunTask('hl.exe', false) then
begin
if MsgBox('Бла бла бла...' #13#13 'Бла бла бла...', mbInformation, mb_YesNo) = idYes then
begin
KillTask('hl.exe');
Result:= true;
end else
Exit;
end;

****************************************************************************


Тоесть, мне надо, что бы ещё проверялись следующие процессы:

Steam.exe
Cs.exe
Cstrike.exe
Counter-Strike.exe
Tier0_a.dll
=======================
Ответьте пожалуйста ! ! !
Автор: iTASmania_Inc
Дата сообщения: 11.11.2007 21:43
Forslay
Если мессага будет выводиться одна и та же для всех случаев, то тогда [more=так]
if RunTask('hl.exe', False) or RunTask('Steam.exe', False) or ... or ... then
begin
if MsgBox('Бла бла бла...' #13#13
'Бла бла бла...', mbInformation, mb_YesNo) = idYes then
begin
KillTask('hl.exe');
KillTask('Steam.exe');
...;
...;
Result := True;
end
else Exit;
end;
[/more]...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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