AtotIK 580 #529496 Posted November 11, 2022 Для кого придумали это? https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss Прекрасно работает, а если попросите у автора - зальёт новую dll с поддержкой WG/Lesta. 1 Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #529498 Posted November 11, 2022 38 минут назад, AtotIK сказал: Для кого придумали это? https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss Прекрасно работает, а если попросите у автора - зальёт новую dll с поддержкой WG/Lesta. А для чего там dll? В коде по ссылке вроде нет dll никакой. Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #529500 Posted November 11, 2022 18 минут назад, StranikS_Scan сказал: А для чего там dll? В коде по ссылке вроде нет dll никакой. https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvmextensions.iss Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #529501 Posted November 11, 2022 3 часа назад, AtotIK сказал: Для кого придумали это? https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss Прекрасно работает, а если попросите у автора - зальёт новую dll с поддержкой WG/Lesta. а как с автором связаться? может подскажете и да еще заметил такую вещь что сейчас старый код перестал определять что игра запущена и не выскакивает окно с предложением закрыть игру по нажатию ок Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #529540 Posted November 12, 2022 . . . procedure Select1(Sender:TObject); begin if (Dir1<> WizardForm.DirEdit.Text) then Dir1:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam'#32#10'App'#32#10'444200,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; procedure Select2(Sender:TObject); begin if (Dir2<> WizardForm.DirEdit.Text) then Dir2:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LGC-WOTB.RU.PRODUCTION\,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; procedure Select3(Sender:TObject); begin if (Dir3<> WizardForm.DirEdit.Text) then Dir3:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('C:\Program Files\'); WizardForm.DirEdit.Enabled:=True; WizardForm.DirBrowseButton.Enabled:= True; end; . . . //Выбор пути установки { NewRadioButton1 } NewRadioButton1 := TNewRadioButton.Create(WizardForm); with NewRadioButton1 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(128); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionSteamInstallation'); OnClick:= @Select1; end; { NewRadioButton2 } NewRadioButton2 := TNewRadioButton.Create(WizardForm); with NewRadioButton2 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(152); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionWGCInstallation'); OnClick:= @Select2; Checked:= True; end; { NewRadioButton3 } NewRadioButton3 := TNewRadioButton.Create(WizardForm); with NewRadioButton3 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(176); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionManualInstallation'); OnClick:= @Select3; Checked:= True; end; NewRadioButton1.TabOrder := 5; NewRadioButton2.TabOrder := 6; NewRadioButton3.TabOrder := 7; Использовал код выше для определения пути установки и последующего выбора. (Нужно было выбрать путь установки для Стим, Леста гейм центра или ручную. Путь должен был искаться через реестр) Но в итоге столкнулся с проблемой, что в пути реестра нельзя использовать пробелы иначе он не может найти путь установки. procedure Select1(Sender:TObject); begin if (Dir1<> WizardForm.DirEdit.Text) then Dir1:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 444200,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; Код в 1 и во 2 вставке не может найти путь... Скажите что я не так делаю и есть-ли какая-нибудь альтернатива? Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #529545 Posted November 12, 2022 (edited) 11.11.2022 в 13:18, StranikS_Scan сказал: А для чего там dll? В коде по ссылке вроде нет dll никакой. набор полезняшек (анпак XML, поиск запущенных процессов и их прибитие, работа с JSON, сплэшскрин, поиск клиентов с обходом файлов WGC/LGC) https://gitlab.com/openwg/openwg.utils OpenWG.Utils_v2022.11.12.3.zip Edited November 12, 2022 by Mixaill 2 Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #530617 Posted December 4, 2022 Mixaill а как это все дело то подключить? пробую выкидывает ошибку через findwot.dll делаю и код встраиваю норм работает но хотелось бы ваш вариант встроить в скрипт Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #530623 Posted December 4, 2022 1 час назад, P.S.Enot сказал: Mixaill а как это все дело то подключить? пробую выкидывает ошибку через findwot.dll делаю и код встраиваю норм работает но хотелось бы ваш вариант встроить в скрипт findwot.dll -- это что-то супер древнее, смотри сюда OpenWG.Utils: комплект полезняшек для InnoSetup (и не только) - Создание модов: общие вопросы - Korean Random 1 Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #530664 Posted December 6, 2022 Добрый день. Ребят подскажите нормальный код для чистки папки mods и res_mods Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #530665 Posted December 6, 2022 DelTree тебе в помощь... if CurStep = ssDone then begin DeleteFile(ExpandConstant('{app}\1\1.bin')); end; begin DelTree(ExpandConstant('{app}\1\1\DelTree'), True, True, True); end; @P.S.Enot Что-то такое. Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #530668 Posted December 6, 2022 4 часа назад, Qirashi сказал: DelTree тебе в помощь... if CurStep = ssDone then begin DeleteFile(ExpandConstant('{app}\1\1.bin')); end; begin DelTree(ExpandConstant('{app}\1\1\DelTree'), True, True, True); end; @P.S.Enot Что-то такое. и куда это все дело мне подключить. или прописать где . чек бокса тоже не видно. Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #530691 Posted December 6, 2022 Зависит от того, что ты хочешь сделать. У меня вообще установщик для репаков. Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #530697 Posted December 6, 2022 9 минут назад, Qirashi сказал: Зависит от того, что ты хочешь сделать. У меня вообще установщик для репаков. для модпака. хочу добавить чтобы пользователь мог поставить галочку очистить папки mods и res_mods . как вот тут или так Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #530757 Posted December 8, 2022 Спасибо всем. разобрался. все сделал. робит Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #530954 Posted December 17, 2022 12.11.2022 в 17:16, Qirashi сказал: . . . procedure Select1(Sender:TObject); begin if (Dir1<> WizardForm.DirEdit.Text) then Dir1:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam'#32#10'App'#32#10'444200,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; procedure Select2(Sender:TObject); begin if (Dir2<> WizardForm.DirEdit.Text) then Dir2:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LGC-WOTB.RU.PRODUCTION\,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; procedure Select3(Sender:TObject); begin if (Dir3<> WizardForm.DirEdit.Text) then Dir3:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('C:\Program Files\'); WizardForm.DirEdit.Enabled:=True; WizardForm.DirBrowseButton.Enabled:= True; end; . . . //Выбор пути установки { NewRadioButton1 } NewRadioButton1 := TNewRadioButton.Create(WizardForm); with NewRadioButton1 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(128); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionSteamInstallation'); OnClick:= @Select1; end; { NewRadioButton2 } NewRadioButton2 := TNewRadioButton.Create(WizardForm); with NewRadioButton2 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(152); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionWGCInstallation'); OnClick:= @Select2; Checked:= True; end; { NewRadioButton3 } NewRadioButton3 := TNewRadioButton.Create(WizardForm); with NewRadioButton3 do begin Parent := WizardForm.SelectDirPage; Left := ScaleX(16); Top := ScaleY(176); Width := ScaleX(300); Height := ScaleY(17); Caption := CustomMessage('CaptionManualInstallation'); OnClick:= @Select3; Checked:= True; end; NewRadioButton1.TabOrder := 5; NewRadioButton2.TabOrder := 6; NewRadioButton3.TabOrder := 7; Использовал код выше для определения пути установки и последующего выбора. (Нужно было выбрать путь установки для Стим, Леста гейм центра или ручную. Путь должен был искаться через реестр) Но в итоге столкнулся с проблемой, что в пути реестра нельзя использовать пробелы иначе он не может найти путь установки. procedure Select1(Sender:TObject); begin if (Dir1<> WizardForm.DirEdit.Text) then Dir1:= WizardForm.DirEdit.Text; WizardForm.DirEdit.Text:= ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 444200,InstallLocation}'); WizardForm.DirEdit.Enabled:= False; WizardForm.DirBrowseButton.Enabled:= False; end; Код в 1 и во 2 вставке не может найти путь... Скажите что я не так делаю и есть-ли какая-нибудь альтернатива? Уже сам нашёл решение. Интересный прикол с битностью системы... Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #531208 Posted January 1, 2023 (edited) Доброго времени суток. Возник очень интересный вопрос, подобного в теме не видел. Filename: "{tmp}\7za.exe"; Parameters: "x ""{tmp}\Hangar.7z"" -o""{app}\Data\"" * -r"; Flags: runhidden runascurrentuser; В категории [Run] есть возможность запустить файл с расширением ехе. Но если этих файлов много, это вызывает некоторые проблемы. Возможно-ли перенести запуск файлов в секцию Code? Какой можно воспользоваться командой? Поясняю для тех кто скажет что это бесполезно, в коде можно сделать привязку к компоненту и лишний раз команда выполняться не будет. Edited January 1, 2023 by Qirashi Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #531227 Posted January 3, 2023 Сам спросил, сам ответил. Если условно есть такой код: [Run] Filename: "{tmp}\7za.exe"; Parameters: "x ""{tmp}\Hangar.7z"" -o""{app}\Data\"" * -r"; Flags: runhidden runascurrentuser; То его можно реализовать при помощи Exec или ShellExec . 2 Quote Share this post Link to post Short link Share on other sites
djgelius 4 #533309 Posted March 19, 2023 Посмотрел я на этот код: https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss все хорошо но как сделать чтобы искать только клиент Лесты? 1 Quote Share this post Link to post Short link Share on other sites
Qirashi 15 #533328 Posted March 21, 2023 19.03.2023 в 23:40, djgelius сказал: Посмотрел я на этот код: https://gitlab.com/xvm/xvm/-/blob/master/src/installer/src/xvm.iss все хорошо но как сделать чтобы искать только клиент Лесты? В смысле только клиент Лесты? Quote Share this post Link to post Short link Share on other sites
Lom 48 #533338 Posted March 21, 2023 к примеру, много у кого стоят клиент и лесты и евро. в таком случае, если человек ставит модпак на евро то установщик находит обычно путь к лесте. крч. если сделать отдельно установщики для евро и для лесты, то смысла чтобы модпак для евро находил клиент лесты нет. как то так)) Quote Share this post Link to post Short link Share on other sites