legik2003 2 #156346 Posted February 17, 2014 (edited) если знаешь какую-нибудь программу которая может долго записывать видео и при этом вес видео не превысит пары гигов, скинь название или сыль на прогу, буду благодарен и попробую сделать мануал ! Я долго искал похожую тему!!! И благодаря тебе я уже начал частично собирать инсталлятор. А насчет твоего вопроса ... то есть такая программа Bandikam http://nnm-club.me/forum/viewtopic.php?t=731012 которая качественно пишет и минимально затрагивает пространство диска. Edited February 17, 2014 by legik2003 2 Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157288 Posted February 20, 2014 Ребята, есть вопрос такой, помогите - 2 дня голову ломаю [Tasks] Name: src; Description: Сохранить оригинальные файлы игры; Flags: exclusive function MoveFile(const srcFile, destFile: PAnsiChar): Integer; external ' [email protected] stdcall loadwithalteredsearchpath'; procedure CreateBackup; var srcFile, destFile: string; basePath, shortPath: string; begin if IsTaskSelected('src') then begin basePath := ExpandConstant('{app}'); srcFile := ExpandConstant(CurrentFileName); shortPath := srcFile; StringChangeEx(shortPath, basePath, '', True); destFile := ExpandConstant('{app}\Backup') + shortPath; ForceDirectories(ExtractFilePath(destFile)); MoveFile(PAnsiChar(srcFile), PAnsiChar(destFile)); end; end; Этот код для бэкапа файлов прикрутил. Так проблема такая - при запуске идет ошибка Runtime Error (at -1:0) Cannot Import dll: <utf8> kernel32.dll Не подхватывает длл-ку почему-то.. Пробую на вин 8.1 и на ХР - одно и то же. Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #157293 Posted February 20, 2014 (edited) del Edited February 5, 2015 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157297 Posted February 20, 2014 @Melkop, всё-таки это немаловажный системный файл (для работы с ОЗУ).. А программа пытается Вырезать его в другое место.. вот система и не разрешает. А зачем тебе именно он? Ну.. вот в справке смотрю тоже бэкапирование с использованием MoveFile(const srcFile, destFile: PAnsiChar): Integer; external ' [email protected] stdcall Может есть альтернативы, без этих библиотек системных? Тут уже обсуждалось, но мне надо не по файлу ориентироваться, что в папке лежит, а весь каталог бекапить. Желательно задавая маску, например. Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #157352 Posted February 20, 2014 (edited) Воу-воу, ничего себе мудрёный код bakup'а... Простой перенос папки уже не в моде? Пробежался по последним страницам. Вердикт - изобретаете велосипед. Практически всё можно сделать проще минимум в 3 раза. Edited February 20, 2014 by AtotIK 2 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #157360 Posted February 20, 2014 (edited) @AtotIK, а пример можно?пока обхожусь базовой функцией.. простым удалением папки res_mods перед установкой: [InstallDelete] Type: filesandordirs; Name: "{app}\res_mods" Хотелось бы два чекбокса на выбор: удалять или бэкапить Edited February 20, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #157362 Posted February 20, 2014 (edited) @AtotIK, а пример можно? пока обхожусь базовой функцией.. простым удалением папки res_mods перед установкой: Хотелось бы два чекбокса на выбор: удалять или бэкапить Вот так пока сделал, за 10 минут накидал. Сегодня-завтра допишу. Edited February 20, 2014 by AtotIK 1 Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157405 Posted February 20, 2014 Воу-воу, ничего себе мудрёный код bakup'а... Простой перенос папки уже не в моде? Да не, переписал уже) Без всяких выкрутасов Правда ребята, вопрос такой еще. Как сделать разделение установок. Вот, например у меня чебокс. Я его жмакаю и жму "далее". И мне надо чтоб это действие выполнилось, появились компоненты, я выбрал нужные и снова действие выполнилось, которое привязано к компонентам. А не вот все сразу одним махом Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #157502 Posted February 20, 2014 (edited) Вроде доделал. Объясняю как работает: Через #include подключается файл, в котором описаны функции работы с файлами и папками. В частности тут это - MoveDir. Нужна версия Inno Setup с установленным препроцессором. Страница создаётся после начальной. Выбираете действие и спокойно идете дальше по установке. Как только инсталлятор переходит на процесс установки (страница ssInstall) запускается чекер, который смотрит какой пункт был выбран и исходя из этого запускает нужную функцию на исполнение. В первом варианте удаляются папки 0.8.11 и xvm, потом создаётся пустая папка 0.8.11. Во втором варианте папки 0.8.11 и xvm переносятся в res_mods\backup. После создаётся пустая папка 0.8.11. Третий вариант создаётся как "заглушка", ничего не происходит при его выборе. Если не нужны надписи вверху страницы (там где картинка), то оставляйте пустые кавычки в строке: BackupPage:=CreateCustomPage(wpWelcome, '', ''); Тогда нужно будет ещё скрыть белый фон, на котором эти надписи отображаются. В InitializeWizard() добавьте: WizardForm.PageNameLabel.Hide; WizardForm.PageDescriptionLabel.Hide; Поле этого страница будет выглядить примерно вот так: В общем спрашивайте, если что-то не понятно. Вроде всё доступно написал. BackUpPage_AtotIK.zip Edited February 20, 2014 by AtotIK 7 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #157504 Posted February 20, 2014 Во втором варианте папки 0.8.11 и xvm переносятся в res_mods\backup Да, переносятся, но абсолютно пустыми (всё содержимое куда-то теряется). Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #157548 Posted February 21, 2014 Да, переносятся, но абсолютно пустыми (всё содержимое куда-то теряется). Всё проверено, всё переносит. Попробуй через CopyDir тоже самое сделать. З.Ы. Версия у меня 5.5.4 не Unicode. 1 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #157575 Posted February 21, 2014 (edited) Всё проверено, всё переносит. Попробуй через CopyDir тоже самое сделать. З.Ы. Версия у меня 5.5.4 не Unicode. У меня 5.5.1, попробую обновиться.. UPD: обновился, теперь тут: procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); ругается на: UnknownType 'TItemArea' Это процедура показа картинки при наведении на компонент курсора.. Могу скинуть сам скрипт Edited February 21, 2014 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Master1989 0 #157684 Posted February 21, 2014 Всё проверено, всё переносит всё работает ) просто переставил Inno Setup с препроцессором.. проблем с потерей файлов нет... Низкий поклон AtotIK! Quote Share this post Link to post Short link Share on other sites
legik2003 2 #157727 Posted February 21, 2014 Подскажите как можно сделать в Select Components возможность выбора компонент с помощью PageControl или TabControl, у меня в задумке разбить установку по вкладкам, просто компонент много и все это рябит в глазах, вот бы и хотелось разбить по разделам.По возможности если есть у кого пример скрипта скинуть для осмысления. Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157755 Posted February 21, 2014 Всё проверено, всё переносит. Странно, через раз как-то.. То переносит то нет Quote Share this post Link to post Short link Share on other sites
Master1989 0 #157762 Posted February 21, 2014 Странно, через раз как-то.. То переносит то нет опиши как тестируешь? Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #157770 Posted February 21, 2014 Вот, кстати, попробовал снова создать резервную копию (на том же инсталле, что и в прошлый раз) - переместилось только несколько файлов из одной и второй папкок Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157854 Posted February 22, 2014 (edited) опиши как тестируешь? ну как.. компилю, запускаю, устанавливаю. В папке лежит один файлик, проверяю потом в бэкапе, пусто. В инсталле отключено создание деинсталлятора. Потом еще раз тоже проделываю, но уже в бэкапе непусто. В общем вроде делает, но как-то нестабильно. Edited February 22, 2014 by Melkop Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #157895 Posted February 22, 2014 (edited) Если используете Unicode версию, то возможно такое. Там глюки с классами. После выходных могу посмотреть как обойти это всё, наверное придётся делать через функции в системных dll'ках. З.Ы. Все скрипты пишутся на этой не unicode версии с установленным препроцессором. Это наименее затронутая версия, считай "чистый клиент". За работу на других версиях я не ручаюсь. Edited February 22, 2014 by AtotIK 1 Quote Share this post Link to post Short link Share on other sites
Melkop 1 #157906 Posted February 22, 2014 Если используете Unicode версию Да, именно ее Quote Share this post Link to post Short link Share on other sites