Portable Apps Не успевает переместить файлы до запуска (DirectoriesMove)
Цитата: Удаленный пользователь от 05.08.2022, 22:49Проблема такая DirectoriesMove начинает перемещать папку в appdata только когда начинает открываться приложение, делает она это не мгновенно и из-за этого приложение не получает данные авторизации и настройки.
Пробовал:
1.Ставить splash с задержкой, опять же папка начинает перемещаться, только когда запускается exe
2.Делал bat с задержкой вместо запуска основного exe (оч. странно но DirectoriesMove опять срабатывает после срабатывания bat и задержки в нем)
3.LaunchAppAfterSplash,WaitForProgram,WaitForOtherInstances,WaitForEXEN
Без толку, файлы не успевают все перекинуться до запуска софта
Какие ещё есть идеи:
1) Делать жёсткую ссылку через mklink /h на каталог в data, чтобы он вообще не перекидывал файлы, не понимаю почему этого функционала нет в Port.Apps. Но проблема в том, что я не нашёл как можно вызвать авто. скрипт при завершении программы, чтобы она почистила ссылки.
2) Сделать портабл в могучем инструменте python) смысл portable apps laucnher понятен, всеми теме же инструментами перемещать файлы реестр и т.д
3) Ещё не проверил все возможности Launcher.nsi и не попробовал сделать exe для запуска exe с задержкой.Подопытный: клиент binance
[Launch] ProgramExecutable=Binance\Binance.exe DirectoryMoveOK=yes SupportsUNC=yes [LiveMode] CopyApp=true [Activate] Registry=true [RegistryKeys] Default=HKLM\Software\Binance [DirectoriesMove] Binance=%userprofile%\AppData\Roaming\Binance Binance=%userprofile%\AppData\Local\binance-updater Binance=%userprofile%\AppData\Local\PeerDistRepubUPD: нашёл в launcher.nsi функции инициализации и очередности, но DirectoriesMove ничего не возвращает, возможно там и асинхрон, крч проверку на то, что файлы все перекинулись вроде как не добавить, возможно задержку где-то, но синтаксис непонятный.
UPD: Segments\DirectoriesMove.nsh здесь логика работы, но синтаксис непонятный и это не исходник, а скрипт для программы со своими непонятными командами
Проблема такая DirectoriesMove начинает перемещать папку в appdata только когда начинает открываться приложение, делает она это не мгновенно и из-за этого приложение не получает данные авторизации и настройки.
Пробовал:
1.Ставить splash с задержкой, опять же папка начинает перемещаться, только когда запускается exe
2.Делал bat с задержкой вместо запуска основного exe (оч. странно но DirectoriesMove опять срабатывает после срабатывания bat и задержки в нем)
3.LaunchAppAfterSplash,WaitForProgram,WaitForOtherInstances,WaitForEXEN
Без толку, файлы не успевают все перекинуться до запуска софта
Какие ещё есть идеи:
1) Делать жёсткую ссылку через mklink /h на каталог в data, чтобы он вообще не перекидывал файлы, не понимаю почему этого функционала нет в Port.Apps. Но проблема в том, что я не нашёл как можно вызвать авто. скрипт при завершении программы, чтобы она почистила ссылки.
2) Сделать портабл в могучем инструменте python) смысл portable apps laucnher понятен, всеми теме же инструментами перемещать файлы реестр и т.д
3) Ещё не проверил все возможности Launcher.nsi и не попробовал сделать exe для запуска exe с задержкой.
Подопытный: клиент binance
[Launch] ProgramExecutable=Binance\Binance.exe DirectoryMoveOK=yes SupportsUNC=yes [LiveMode] CopyApp=true [Activate] Registry=true [RegistryKeys] Default=HKLM\Software\Binance [DirectoriesMove] Binance=%userprofile%\AppData\Roaming\Binance Binance=%userprofile%\AppData\Local\binance-updater Binance=%userprofile%\AppData\Local\PeerDistRepub
UPD: нашёл в launcher.nsi функции инициализации и очередности, но DirectoriesMove ничего не возвращает, возможно там и асинхрон, крч проверку на то, что файлы все перекинулись вроде как не добавить, возможно задержку где-то, но синтаксис непонятный.
UPD: Segments\DirectoriesMove.nsh здесь логика работы, но синтаксис непонятный и это не исходник, а скрипт для программы со своими непонятными командами
Цитата: Удаленный пользователь от 06.08.2022, 02:47Добрый🖐.
Странно конечно, но сначала работает лаунчер(если есть что переносить он сначала переносит подготовленные каталоги), а потом запускается софт(а не одновременно), люди делают фотошопы и гигантские проекты и у всех все успевает перебросить.
Я тоже пользуюсь binance(только не portable) у него жесткая авторизация и защита данных, возможно проблема в этом, он не может постоянно держать ее или при смене ПК авторизоваться в прошлом сеансе.
Попробуй завиртуалить ее.
Добрый🖐.
Странно конечно, но сначала работает лаунчер(если есть что переносить он сначала переносит подготовленные каталоги), а потом запускается софт(а не одновременно), люди делают фотошопы и гигантские проекты и у всех все успевает перебросить.
Я тоже пользуюсь binance(только не portable) у него жесткая авторизация и защита данных, возможно проблема в этом, он не может постоянно держать ее или при смене ПК авторизоваться в прошлом сеансе.
Попробуй завиртуалить ее.
Цитата: admin от 06.08.2022, 09:47Алексей, приветствую 🖐
Из того, как выглядит Ваш ini файл, можно сделать несколько выводов:
- Для начала лайтовое замечание. Просто в глаза бросается, как написано всё без отступов. Есть подозрение, что Вы не смотрели это видео.
- Есть параметр
[LiveMode] ➜ CopyApp=true, который Вам не нужен. Вряд ли понимали, когда добавляли его.- Для категорий типа
[DirectoriesMove]и других не желательно делать [simple_tooltip content='Binance=123
Binance=1234
Binance=12345']так[/simple_tooltip]:
Э неее.... Вы создаёте конфликт каталогов, если по совпадению они могут иметь внутри одинаковые имена, поэтому Вам нужно делать так:
BinanceRoaming=%userprofile%\AppData\Roaming\Binance
BinanceUpdater=%userprofile%\AppData\Local\binance-updater- Ну, а вот эта строка
Binance=%userprofile%\AppData\Local\PeerDistRepubвообще "нелегальна" =)
Как же можно эту папку забирать целиком, если она вообще не относится к BinanceВозвращаемся к пункту 1 ➜ посмотрите это видео. Сэкономите не только время себе, но и перестанете ломать себе и вероятно другим винду 👍
Плюс перестанут появляться такие мысли:Portable Apps Не успевает переместить файлы
Всё он там "успевает". Он вообще никуда не торопится. Проект делает ровно то, что Вы ему задаёте.
У начинающих программистов довольно часто встречается: «код делает не то, что мне нужно».
И ответ на это обычно: «код работает именно так, как ты его написал».
Алексей, приветствую 🖐
Из того, как выглядит Ваш ini файл, можно сделать несколько выводов:
- Для начала лайтовое замечание. Просто в глаза бросается, как написано всё без отступов. Есть подозрение, что Вы не смотрели это видео.
- Есть параметр
Скопировано[LiveMode] ➜ CopyApp=true, который Вам не нужен. Вряд ли понимали, когда добавляли его. - Для категорий типа
Скопировано[DirectoriesMove]и других не желательно делать [simple_tooltip content='Binance=123
Binance=1234
Binance=12345']так[/simple_tooltip]:
Э неее.... Вы создаёте конфликт каталогов, если по совпадению они могут иметь внутри одинаковые имена, поэтому Вам нужно делать так:
СкопированоBinanceRoaming=%userprofile%\AppData\Roaming\Binance
СкопированоBinanceUpdater=%userprofile%\AppData\Local\binance-updater - Ну, а вот эта строка
СкопированоBinance=%userprofile%\AppData\Local\PeerDistRepubвообще "нелегальна" =)
Как же можно эту папку забирать целиком, если она вообще не относится к Binance
Возвращаемся к пункту 1 ➜ посмотрите это видео. Сэкономите не только время себе, но и перестанете ломать себе и вероятно другим винду 👍
Плюс перестанут появляться такие мысли:
Portable Apps Не успевает переместить файлы
Всё он там "успевает". Он вообще никуда не торопится. Проект делает ровно то, что Вы ему задаёте.
У начинающих программистов довольно часто встречается: «код делает не то, что мне нужно».
И ответ на это обычно: «код работает именно так, как ты его написал».
Цитата: Удаленный пользователь от 07.08.2022, 01:07Цитата: Mikhail от 06.08.2022, 02:47Добрый
.
Странно конечно, но сначала работает лаунчер(если есть что переносить он сначала переносит подготовленные каталоги), а потом запускается софт(а не одновременно), люди делают фотошопы и гигантские проекты и у всех все успевает перебросить.
Я тоже пользуюсь binance(только не portable) у него жесткая авторизация и защита данных, возможно проблема в этом, он не может постоянно держать ее или при смене ПК авторизоваться в прошлом сеансе.
Попробуй завиртуалить ее.
да эта "жёсткая авторизация" хранится в отпечатке в файле simple-storage.json в roaming\binance
Цитата: Mikhail от 06.08.2022, 02:47Добрый
.
Странно конечно, но сначала работает лаунчер(если есть что переносить он сначала переносит подготовленные каталоги), а потом запускается софт(а не одновременно), люди делают фотошопы и гигантские проекты и у всех все успевает перебросить.
Я тоже пользуюсь binance(только не portable) у него жесткая авторизация и защита данных, возможно проблема в этом, он не может постоянно держать ее или при смене ПК авторизоваться в прошлом сеансе.
Попробуй завиртуалить ее.
да эта "жёсткая авторизация" хранится в отпечатке в файле simple-storage.json в roaming\binance
Цитата: Удаленный пользователь от 07.08.2022, 02:42Цитата: XpucT от 06.08.2022, 09:47Алексей, приветствую
Из того, как выглядит Ваш ini файл, можно сделать несколько выводов:
- Для начала лайтовое замечание. Просто в глаза бросается, как написано всё без отступов. Есть подозрение, что Вы не смотрели это видео.
- Есть параметр
[LiveMode] ➜ CopyApp=true, который Вам не нужен. Вряд ли понимали, когда добавляли его.- Для категорий типа
[DirectoriesMove]и других не желательно делать [simple_tooltip content='Binance=123
Binance=1234
Binance=12345']так[/simple_tooltip]:
Э неее.... Вы создаёте конфликт каталогов, если по совпадению они могут иметь внутри одинаковые имена, поэтому Вам нужно делать так:
BinanceRoaming=%userprofile%\AppData\Roaming\Binance
BinanceUpdater=%userprofile%\AppData\Local\binance-updater- Ну, а вот эта строка
Binance=%userprofile%\AppData\Local\PeerDistRepubвообще "нелегальна" =)
Как же можно эту папку забирать целиком, если она вообще не относится к BinanceВозвращаемся к пункту 1 ➜ посмотрите это видео. Сэкономите не только время себе, но и перестанете ломать себе и вероятно другим винду
Плюс перестанут появляться такие мысли:Portable Apps Не успевает переместить файлы
Всё он там "успевает". Он вообще никуда не торопится. Проект делает ровно то, что Вы ему задаёте.
У начинающих программистов довольно часто встречается: «код делает не то, что мне нужно».
И ответ на это обычно: «код работает именно так, как ты его написал».Конечно же я смотрел видео, и видео это лайт уровень.
1.Во-первых, отступы съёла верстка кода при оформлении темы
2.По поводу live mode конечно знаю что он делает и именно из-за этого он там появился и тестировался в false. т.к по умолчанию он true и то что он у меня остался в true ничем не отличается, если бы его не было.
3.Мой косяк, не заметил, накопировал строку и забыл переопределить каталог под них разный. Просто при тестах это дало странный баг, запускаю порт. начинают файлы появляться из каталога binance, но появлялись последовательно, софт уже запустился, а файлы ещё не все закинулись, проверил с ручным переносом и решил, что возможно у них нет проверки и подумал, что в другом софте скорость запуска возможно дольше и он позже их читает. PeerDistRepub несколько раз проверял, он с ним взаимодействовал при запуске и какие-то файлы там хранил, почитал потом что это системная папка от удалённого рабочего стола, поставил после на неё cleanupНачнём с того, что это не код, а команды для работы формируемого exe. Был бы это код или хотябы фреймворк, там можно докопаться до низкого уровня, как он это делает, логику работы [DirectoriesMove] я нашёл, но это всё же не код и непонятно что он делает под копотом, ну и синтаксис я не разбирал о чем написал в p.s.
В том то и разница, код работает именно так, как он написан, а здесь у тебя не код, а реализация на portable apps.«код делает не то, что мне нужно» такие слова могут быть только у скриптеров которые используют высокоуровневые языки)
В общем спасибо, не заметил глупую ошибку, которая вызвала странный баг с поздним переносом файлов из каталога, но все же странно, что у них нет реализации жёстких ссылок, смысл грузить на диск С, если можно сделать ссылку и не дрочить на запись диск. Глупая ошибка, но разобрав функционал PA и посмотрев реализацию логики в nsh. Понял, что оптимизированные и сложные проекты проще реализовать на языке, это будет более читаемо и можно реализовать всё, что душе угодно) на питоне, довольно быстро реализуется, вчера за часик накидал формирование жёстких ссылок, чтобы файлы он не дергал и запись в реестр и удаление при завершении программы, ещё надо добавить запись перед удалением, чтобы сохранял изменения, ссылки чтобы автоматом менял на относительные запуска программ ну и т.д, потенциала кнч больше, лучше кнч на шарпе написать, но тут короче и быстрее, быстрота не требуется, только в каждый exe python пихает вес увеличивает программы не сильно страшно.
Цитата: XpucT от 06.08.2022, 09:47Алексей, приветствую
Из того, как выглядит Ваш ini файл, можно сделать несколько выводов:
- Для начала лайтовое замечание. Просто в глаза бросается, как написано всё без отступов. Есть подозрение, что Вы не смотрели это видео.
- Есть параметр
Скопировано[LiveMode] ➜ CopyApp=true, который Вам не нужен. Вряд ли понимали, когда добавляли его.- Для категорий типа
Скопировано[DirectoriesMove]и других не желательно делать [simple_tooltip content='Binance=123
Binance=1234
Binance=12345']так[/simple_tooltip]:
Э неее.... Вы создаёте конфликт каталогов, если по совпадению они могут иметь внутри одинаковые имена, поэтому Вам нужно делать так:
СкопированоBinanceRoaming=%userprofile%\AppData\Roaming\Binance
СкопированоBinanceUpdater=%userprofile%\AppData\Local\binance-updater- Ну, а вот эта строка
СкопированоBinance=%userprofile%\AppData\Local\PeerDistRepubвообще "нелегальна" =)
Как же можно эту папку забирать целиком, если она вообще не относится к BinanceВозвращаемся к пункту 1 ➜ посмотрите это видео. Сэкономите не только время себе, но и перестанете ломать себе и вероятно другим винду
Плюс перестанут появляться такие мысли:Portable Apps Не успевает переместить файлы
Всё он там "успевает". Он вообще никуда не торопится. Проект делает ровно то, что Вы ему задаёте.
У начинающих программистов довольно часто встречается: «код делает не то, что мне нужно».
И ответ на это обычно: «код работает именно так, как ты его написал».
Конечно же я смотрел видео, и видео это лайт уровень.
1.Во-первых, отступы съёла верстка кода при оформлении темы
2.По поводу live mode конечно знаю что он делает и именно из-за этого он там появился и тестировался в false. т.к по умолчанию он true и то что он у меня остался в true ничем не отличается, если бы его не было.
3.Мой косяк, не заметил, накопировал строку и забыл переопределить каталог под них разный. Просто при тестах это дало странный баг, запускаю порт. начинают файлы появляться из каталога binance, но появлялись последовательно, софт уже запустился, а файлы ещё не все закинулись, проверил с ручным переносом и решил, что возможно у них нет проверки и подумал, что в другом софте скорость запуска возможно дольше и он позже их читает. PeerDistRepub несколько раз проверял, он с ним взаимодействовал при запуске и какие-то файлы там хранил, почитал потом что это системная папка от удалённого рабочего стола, поставил после на неё cleanup
Начнём с того, что это не код, а команды для работы формируемого exe. Был бы это код или хотябы фреймворк, там можно докопаться до низкого уровня, как он это делает, логику работы [DirectoriesMove] я нашёл, но это всё же не код и непонятно что он делает под копотом, ну и синтаксис я не разбирал о чем написал в p.s.
В том то и разница, код работает именно так, как он написан, а здесь у тебя не код, а реализация на portable apps.
«код делает не то, что мне нужно» такие слова могут быть только у скриптеров которые используют высокоуровневые языки)
В общем спасибо, не заметил глупую ошибку, которая вызвала странный баг с поздним переносом файлов из каталога, но все же странно, что у них нет реализации жёстких ссылок, смысл грузить на диск С, если можно сделать ссылку и не дрочить на запись диск. Глупая ошибка, но разобрав функционал PA и посмотрев реализацию логики в nsh. Понял, что оптимизированные и сложные проекты проще реализовать на языке, это будет более читаемо и можно реализовать всё, что душе угодно) на питоне, довольно быстро реализуется, вчера за часик накидал формирование жёстких ссылок, чтобы файлы он не дергал и запись в реестр и удаление при завершении программы, ещё надо добавить запись перед удалением, чтобы сохранял изменения, ссылки чтобы автоматом менял на относительные запуска программ ну и т.д, потенциала кнч больше, лучше кнч на шарпе написать, но тут короче и быстрее, быстрота не требуется, только в каждый exe python пихает вес увеличивает программы не сильно страшно.