Программа для создания портативных версий приложений
Цитата: Mikhail от 24.04.2023, 13:09Никита, Да, я нашел причину, забыл отписаться, лаучнер просмотрел, как он удаляет и нашел ошибку свою.
Спасибо еще раз.
Никита, Да, я нашел причину, забыл отписаться, лаучнер просмотрел, как он удаляет и нашел ошибку свою.
Спасибо еще раз.
Цитата: Никита от 24.04.2023, 13:14ЯR, по поводу FFS. Проверь у себя, пожалуйста, если уже работает нормально портативка.
Я вчера свою перекинул на виртуалку и получил там ошибку, мол программа была инсталлирована на другой системе и на новой не может работать.
Если у тебя работает на нескольких "тачках", подскажи версию FreeFileSync пожалуйста.
ЯR, по поводу FFS. Проверь у себя, пожалуйста, если уже работает нормально портативка.
Я вчера свою перекинул на виртуалку и получил там ошибку, мол программа была инсталлирована на другой системе и на новой не может работать.
Если у тебя работает на нескольких "тачках", подскажи версию FreeFileSync пожалуйста.
Цитата: ЯR от 24.04.2023, 15:45Никита, работает только в той системе, в которой была создана портативка. Запуск в любой другой ВМ, а также в хосте не работает. Версия у меня последняя — 12.2
Подозреваю, что инфа о системе записана и зашифрована в файле Install.dat.
Никита, работает только в той системе, в которой была создана портативка. Запуск в любой другой ВМ, а также в хосте не работает. Версия у меня последняя — 12.2
Подозреваю, что инфа о системе записана и зашифрована в файле Install.dat.
Цитата: ЯR от 24.04.2023, 15:55UPD: так и есть — имелся в наличии файл install.dat от версии 11.18 и вот что окно оповещения выдало.
UPD: так и есть — имелся в наличии файл install.dat от версии 11.18 и вот что окно оповещения выдало.
Цитата: Mikhail от 24.04.2023, 15:57Цитата: ЯR от 24.04.2023, 10:22Никита, привет.
Нашёл ошибку в своих действиях: так как ключей реестра не один и не два, в нескольких reg-файлах у меня были объединены по несколько ключей в каждом. Даже не подумал, как PortableCreator (PC) будет вычленять и удалять ключи, прописанные в объединённом рег-файле. рука-лицо...
По этой причине, PC при закрытии ланчера удалял чуть ли не половину реестра
За добавленную общую папку, отдельное спасибоПривет.
Я правильно понял, что если я объединю все ключи в один рег файл(чтоб 100500 их в папке не было), то они не будут удаляться и импортироваться?
Цитата: ЯR от 24.04.2023, 10:22Никита, привет.
Нашёл ошибку в своих действиях: так как ключей реестра не один и не два, в нескольких reg-файлах у меня были объединены по несколько ключей в каждом. Даже не подумал, как PortableCreator (PC) будет вычленять и удалять ключи, прописанные в объединённом рег-файле. рука-лицо...
По этой причине, PC при закрытии ланчера удалял чуть ли не половину реестра
За добавленную общую папку, отдельное спасибо
Привет.
Я правильно понял, что если я объединю все ключи в один рег файл(чтоб 100500 их в папке не было), то они не будут удаляться и импортироваться?
Цитата: ЯR от 24.04.2023, 16:03Mikhail, привет.
Правильно. По крайней мере, после того, как я экспортировал каждый ключ реестра по отдельности, так падения тестовой системы прекратились.
Парсит ли PortableCreator рег-файлы? - вопрос к Никите.
Mikhail, привет.
Правильно. По крайней мере, после того, как я экспортировал каждый ключ реестра по отдельности, так падения тестовой системы прекратились.
Парсит ли PortableCreator рег-файлы? - вопрос к Никите.
Цитата: Mikhail от 24.04.2023, 16:06ЯR, Понял, а я то тут 3к строк в рег файл засунул и не пойму, чего не работает, точнее он вроде импортирует, но при экспорте, все удаляет и оставляет в рег файле 1 ключ.
Хотел еще фотошоп перекинуть, глянул сколько там ключей и перехотел=), по одному в отдельный рег файл вставлять, та еще задачка.
ЯR, Понял, а я то тут 3к строк в рег файл засунул и не пойму, чего не работает, точнее он вроде импортирует, но при экспорте, все удаляет и оставляет в рег файле 1 ключ.
Хотел еще фотошоп перекинуть, глянул сколько там ключей и перехотел=), по одному в отдельный рег файл вставлять, та еще задачка.
Цитата: Mikhail от 24.04.2023, 16:39Я думаю функцию удаления reg ключей, нужно вынести отдельно в ini файл, многие приложений при старте создают тонну ключей, как фотошоп например и спокойно там прописать все ключи для удаления, как с процессами сделано, при этом не трогать удаление при экспорте, это будет доп удаление ключей.
Ну и сделать чтоб парсил все ключи из reg файла в переменную, а там уже передавал в новый процесс regedit.
Я думаю функцию удаления reg ключей, нужно вынести отдельно в ini файл, многие приложений при старте создают тонну ключей, как фотошоп например и спокойно там прописать все ключи для удаления, как с процессами сделано, при этом не трогать удаление при экспорте, это будет доп удаление ключей.
Ну и сделать чтоб парсил все ключи из reg файла в переменную, а там уже передавал в новый процесс regedit.
Цитата: Никита от 24.04.2023, 16:48Цитата: Mikhail от 24.04.2023, 16:06Хотел еще фотошоп перекинуть, глянул сколько там ключей и перехотел=)
В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
Цитата: Mikhail от 24.04.2023, 16:06Хотел еще фотошоп перекинуть, глянул сколько там ключей и перехотел=)
В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
Цитата: Mikhail от 24.04.2023, 16:52Цитата: Никита от 24.04.2023, 16:48В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
А как же классы, файлы расширений, он это все создает, и в приличном количестве, пример и там еще полотно внизу.
Цитата: Никита от 24.04.2023, 16:48В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
А как же классы, файлы расширений, он это все создает, и в приличном количестве, пример и там еще полотно внизу.
Цитата: Никита от 24.04.2023, 17:07Цитата: ЯR от 24.04.2023, 16:03Парсит ли PortableCreator рег-файлы?
Лончер при запуске проверяет есть ли хотя бы один файл в папке Data\Реестр.
Если есть, то просто каждый файл загоняет в реестр.А вот при закрытии программы, немного иначе.
Если есть хотя бы один файл в папке Data\Реестр, то считывается третья строка из первого файла (где указан основной путь реестра) и экспортирует именно этот ключ и все подкаталоги в файл реестра. Потом переходит к следующему файлу и делает то же самое и так по кругу, пока не экспортирует из реестра все ключи, которые прописаны в каждом *.reg файле на третьей строке.Поэтому пока для нормального экспорта из реестра, нужно разные ключи реестра сохранять в разные файлы.
Но например при иерархии Фотошопа:
- HKEY_CURRENT_USER\Software\Adobe\
- HKEY_CURRENT_USER\Software\Adobe\CommonFiles
- HKEY_CURRENT_USER\Software\Adobe\CSXS.11
- HKEY_CURRENT_USER\Software\Adobe\Photoshop
Это не означает, что для каждого ключа нужно создавать новый файл.
При таком раскладе достаточно только экспортировать общий ключ HKEY_CURRENT_USER\Software\Adobe\ и таким образом будет работать и всё, что внутри древа Adobe.
Надеюсь понятно объяснил.
Цитата: ЯR от 24.04.2023, 16:03Парсит ли PortableCreator рег-файлы?
Лончер при запуске проверяет есть ли хотя бы один файл в папке Data\Реестр.
Если есть, то просто каждый файл загоняет в реестр.
А вот при закрытии программы, немного иначе.
Если есть хотя бы один файл в папке Data\Реестр, то считывается третья строка из первого файла (где указан основной путь реестра) и экспортирует именно этот ключ и все подкаталоги в файл реестра. Потом переходит к следующему файлу и делает то же самое и так по кругу, пока не экспортирует из реестра все ключи, которые прописаны в каждом *.reg файле на третьей строке.
Поэтому пока для нормального экспорта из реестра, нужно разные ключи реестра сохранять в разные файлы.
Но например при иерархии Фотошопа:
- HKEY_CURRENT_USER\Software\Adobe\
- HKEY_CURRENT_USER\Software\Adobe\CommonFiles
- HKEY_CURRENT_USER\Software\Adobe\CSXS.11
- HKEY_CURRENT_USER\Software\Adobe\Photoshop
Это не означает, что для каждого ключа нужно создавать новый файл.
При таком раскладе достаточно только экспортировать общий ключ HKEY_CURRENT_USER\Software\Adobe\ и таким образом будет работать и всё, что внутри древа Adobe.
Надеюсь понятно объяснил.
Цитата: Никита от 24.04.2023, 17:37Цитата: Mikhail от 24.04.2023, 16:52Цитата: Никита от 24.04.2023, 16:48В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
А как же классы, файлы расширений, он это все создает, и в приличном количестве, пример и там еще полотно внизу.
Ага, нашёл. Не заметил сразу.
Тут палка о двух концах, потому что...
Перво-наперво: Так или иначе все ключи экспортируются из реестра по одному файлу.
Условно говоря нужно вытащить 20 *.reg файлов из реестра. Верно? Тратим на это время в любом случае, как с тем же Фотошопом (минуты 3)
Потом:
1. Можно сделать совмещение всех 20 *.reg файлов в один, но это тоже трата времени, на слияние. (каждый делает это по разному, но если делать руками, то ещё минут 5)
2. И потом программа будет считывать КАЖДЫЙ ключ из этого общего файла в котором сразу может быть несколько разных индивидуальных путей реестра, соответственно нужно под разные ключи разную маску для поиска добавлять в лончер.
Получается 8 минут на подготовку одного *.reg файла + потом этот один *.reg файл (длинной в 3000 строк например) прогонять по разным паттернам поиска.
Более того, потом нужно еще дописать код, чтобы объединить обратно все экспортированные ключи в один файл (поскольку из реестра в папку они будут экспортироваться изначально по одному)Или так как сейчас работает.
1. Берём 20 *.reg файлов и кидаем в папку, тратя только те же 3 минуты на экспорт.
2. Тогда программе нужно будет проверить только 20 строк на ВСЮ папку, поскольку 20 файлов и у всех файлов в одном и том же месте имеется нужный ключ.
И не нужно под каждый возможный ключ реестра делать паттерн на его поиск внутри файла.
Опять же, может если есть более простое видение, как сделать так, чтобы программа знала какой ключ нужно будет экспортировать из реестра в папку. Но я пока проще, чем просто считывание основного пути с каждого файла не придумал.
Я на этом форуме, чтобы брать знания и делится тем чем могу. Так что если на пальцах будет вариант проще и быстрее для конечного пользователя, то Я бы попробовал и его)
Цитата: Mikhail от 24.04.2023, 16:52Цитата: Никита от 24.04.2023, 16:48В Фотошопе там достаточно только [HKEY_CURRENT_USER\Software\Adobe] сохранить в один *.reg файл. Больше он ключей не добавляет. И у Хачатура портативка только этот ключ дёргает (оттуда и подсмотрел)
А как же классы, файлы расширений, он это все создает, и в приличном количестве, пример и там еще полотно внизу.
Ага, нашёл. Не заметил сразу.
Тут палка о двух концах, потому что...
Перво-наперво: Так или иначе все ключи экспортируются из реестра по одному файлу.
Условно говоря нужно вытащить 20 *.reg файлов из реестра. Верно? Тратим на это время в любом случае, как с тем же Фотошопом (минуты 3)
Потом:
1. Можно сделать совмещение всех 20 *.reg файлов в один, но это тоже трата времени, на слияние. (каждый делает это по разному, но если делать руками, то ещё минут 5)
2. И потом программа будет считывать КАЖДЫЙ ключ из этого общего файла в котором сразу может быть несколько разных индивидуальных путей реестра, соответственно нужно под разные ключи разную маску для поиска добавлять в лончер.
Получается 8 минут на подготовку одного *.reg файла + потом этот один *.reg файл (длинной в 3000 строк например) прогонять по разным паттернам поиска.
Более того, потом нужно еще дописать код, чтобы объединить обратно все экспортированные ключи в один файл (поскольку из реестра в папку они будут экспортироваться изначально по одному)
Или так как сейчас работает.
1. Берём 20 *.reg файлов и кидаем в папку, тратя только те же 3 минуты на экспорт.
2. Тогда программе нужно будет проверить только 20 строк на ВСЮ папку, поскольку 20 файлов и у всех файлов в одном и том же месте имеется нужный ключ.
И не нужно под каждый возможный ключ реестра делать паттерн на его поиск внутри файла.
Опять же, может если есть более простое видение, как сделать так, чтобы программа знала какой ключ нужно будет экспортировать из реестра в папку. Но я пока проще, чем просто считывание основного пути с каждого файла не придумал.
Я на этом форуме, чтобы брать знания и делится тем чем могу. Так что если на пальцах будет вариант проще и быстрее для конечного пользователя, то Я бы попробовал и его)
Цитата: Mikhail от 24.04.2023, 17:43Я поэтому и предлагаю вывести удаление reg файлов в отдельный ini файл, мне те записи вообще не нужны, но я их не могу удалить при закрытии приложения, потому что функция удаления, завязана на экспорте.
Я поэтому и предлагаю вывести удаление reg файлов в отдельный ini файл, мне те записи вообще не нужны, но я их не могу удалить при закрытии приложения, потому что функция удаления, завязана на экспорте.