PDA

Показать полную графическую версию : Скрипты 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

Johny777
15-04-2012, 02:50
LinkOFF,
Справка (http://sendfile.su/570136 ) ----> "Секция скриптов" ----> "Секция [Files]"

LinkOFF
15-04-2012, 03:03
Johny777, Че-то я там не нашел.Там только для файлов написано, а мне для папок нужно

valyok666
15-04-2012, 03:16
LinkOFF, поподробнее объясни что надо тебе

LinkOFF
15-04-2012, 03:25
Мне нужно чтоб вместе с файлами добавлялись и папки(секция Files).Например у меня есть папка и в ней находятся папки и файлы, но добавляются только файлы(D:\папка\файлы.*) а папки (D:\папка\папка) не добавляются.Как-то вот так

Johny777
15-04-2012, 03:42
LinkOFF,
Source: Files\*; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
флаги там же почитай обязательно (все, чтобы иметь представление)

LinkOFF
15-04-2012, 03:52
Johny777, вот прям только что нашел в секции "Подборка полезных примеров"

R.i.m.s.k.y.
15-04-2012, 07:26
LinkOFF, есть секция [Dirs]
[Dirs]
Name: "{app}\data"
Name: "{app}\bin"

alert30
15-04-2012, 08:59
LinkOFF, есть секция [Dirs] »
R.i.m.s.k.y., спасибо. Кнопочка "Полезное сообщение" исчез.

R.i.m.s.k.y.
15-04-2012, 09:08
alert30, а) обнови страницу б) вычисти кеш браузера в) выдерни шнур выдави стекло

ivsatel
15-04-2012, 11:58
Подскажите пожалуйста как решить такую задачу. Мне нужно вот, что:

1) перед установкой убить процесс
2) внести изменения в реестр
3) запустить процесс

Процесс ctfmon.exe через taskkill /T /IM ctfmon.exe не убивается почему то, а строки реестра находящиеся в секции [Registry] получается (Исходя из последовательности прочтения секций во время инсталляции. ) вносятся до того как процесс ctfmon.exe будет убит по средствам секции [Run] (хотя не убивается).

R.i.m.s.k.y.
15-04-2012, 13:27
процесс ctfmon.exe будет убит по средствам секции [Run] »
фурсенка негодуэ одобряэ!!11


предлагаешь здесь присутствующим пасхальные гадания на скрипт? ню-ню

Johny777
15-04-2012, 13:42
ivsatel,
1 способ

function InitializeSetup(): Boolean;
var ErrorCode: Integer;
begin
Exec('taskkill', '/f /im process.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode);
Result := True;
end;

тот же способ через RUN

[Run]
Filename: taskkill; Parameters: /f /t /im steam.exe; Flags: runhidden
и
2 способ через библиотеку ISTask.dll

[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program

[Files]
Source: "ISTask.dll"; DestDir: "{app}"

[ Code]

function KillTaskA(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';



function InitializeUninstall(): Boolean;
begin
If RunTaskA('hl2.exe', false) then
begin
if MsgBox('Программа установки русификатора обнаружила, что программа'#13'для которой установится русификатор запушена в данный момент. '#13#13' Закрыть программу?'#13#13 +
'"Да" - закроет и не сохранит измененные настройки в программе.' #13#13 +
'"Нет" - продолжит установку без закрытия. (Настоятельно рекомендуется нажать Да)', mbError, mb_YesNo) = idYes then
begin
KillTaskA('hl2.exe');
Result := True;
end else
Exit;
end;
Result := True;
begin
If RunTaskA('hl2.exe', false) then
begin
KillTaskA('hl2.exe');
Result := True;
end else
Exit;
end;
end;

R.i.m.s.k.y.
15-04-2012, 13:48
Johny777, 1 способ не работает, выше же написано
2 способ вызывает WMI если мне склероз не изменяет, и на сборочных виндах или допиленных ускорителями WMI крашится

Поэтому и нужен скрипт чтобы увидеть конкретно чего не идет

Johny777
15-04-2012, 13:51
R.i.m.s.k.y.,
Странно. Его и использую через RUN. Способ рабочий. Ну ладно.

R.i.m.s.k.y.
15-04-2012, 13:53
Johny777, не удивлюсь если ctfmon.ехе написан через русскую Е или О

Johny777
15-04-2012, 14:00
R.i.m.s.k.y.,
после завершения процесса Steam.exe в трее висит иконка, хотя процесс уже завершён. Это фигня конечно, но кого-то может смутить

R.i.m.s.k.y.
15-04-2012, 14:02
Johny777, это баг венды еще с вин95 :)
курсор наведи и она исчезнет

ivsatel
15-04-2012, 16:23
Johny777, Спасибо. Через функцию получилось.

ivsatel
16-04-2012, 19:54
Еще вопрос. Как связать функцию (в коде) и секцию Tasks ? То есть, что-бы функция отрабатывала только если выбрано определенное задание из Tasks.

R.i.m.s.k.y.
16-04-2012, 20:06
ivsatel,
[Tasks]
Name: avs; Description: AviSynth 2.5.8 MT; GroupDescription: Дополнительные компоненты

[*Code]
....
if (IsTaskSelected('avs')) then ...




© OSzone.net 2001-2012