Вы должны войти, чтобы создавать сообщения и темы.

Ассоциация файлов в портативной программе

1◄Страница 3 из 7► 7

Здравствуйте! Как перемещать файл по определённой директории, я разобрался. Но вот как перенести целую папку c данными в нужную директорию...Ничего подобного в инструкции не удалось найти((
Такой вариант не прокатил:
[FilesMove]
MYFOLDER="C:\Users\Public\Documents\MYPROGRAMMA"

Привет.
Ну [DirectoriesMove] и таскает папки, если через него не получается то значит использовать Custom.nsh, где я не очень силен), но можно подглядеть в чужие сборки.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Хорошо, давайте попробуем через [DirectoriesMove]. К примеру, в DefaultData лежит папка с данными MYFOLDER. И эту папку с данными (!) нужно переместить в директорию C:\Users\Public\Documents\MYPROGRAMMA. Как тогда мы запишем?

Так и пишем СкопированоMYFOLDER="C:\Users\Public\Documents\MYFOLDER"переносится 100%.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

К примеру, у нас дан следующий путь: D:\SystemFolders\Desktop\MYPROGRAMMA_Portable\App\MYPROGRAMMA_Data. Можно ли с помощью переменных сред сделать данный путь общим для всех, кто бы и на каком компьютере программу ни запустил? Я имею в виду заменить отрывок пути "D:\SystemFolders\Desktop..." на особую переменную. Ведь кто знает, где у другого пользователя будет находиться папка MYPROGRAMMA_Portable?

Выбирайте любую переменную вам подходящую и вводите.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Здравствуйте! А если после перезагрузки ПК портативные приложения, которые ранее были запущены и добавлены в автозагрузку, выдают ошибку, что "приложение уже запущено бла-бла-бла...", из-за чего приходится вручную по новой запускать программу. 
Приведу пример. Пусть портативный Lightshot запущен и находится в панели задач. Затем ПК перезагружается и, вместо того чтобы запуститься, Lightshot выдаёт некую ошибку, из-за чего его вручную приходится снова запускать. Возможно ли такое исправить?

Добрый день 🖐
Нет, потому что Windows закрывает сразу все процессы при перезагрузки.
То есть ланчер не успевает прибраться в реестре, потому что был убит вместе с программой.
Конкретно с Lightshot рекомендую перейти на FastStone Capture

Лайкнул Никита
Никита

Привет.
Никак это не исправить, лаунчер был неправильно закрыт, он не сделал свою работу по завершению софта, поэтому и выдает ошибку, что лаунчер был не корректно завершен при первом запуске и второй запуск, запускает софт. Поэтому перед перезагрузкой, завершайте работу приложения.

Лайкнул Никита
Никита
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Привет! А вы не знаете, почему параметр [FilesMove] не работает для перемещения файлов в системные папки? К примеру:

[FilesMove]
GOST_A.FON="C:\Windows\Fonts"

 

Привет.
Не в курсе(точнее забыл), я больше по виртуализированной части, скриптографией собираю простые программы, где только папку забрать, реестр удалить, более сложные в C# создаю, там удобней и возможностей больше.
Почитайте справку, я только 1 раз давно переносил и то забыл), файл для переноса вроде должен лежать в DefaultData или settings и путь через %PAL к нему прописывать.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Файл для перемещения лежит в корне DefaultData. В справке сказано, что файл может быть как в DefaultData, так и в settings. А также приведён пример:

Example: settings\file.txt=%PAL:AppDir%\AppName

 

Добрый день 🖐

Цитата: Никита от 07.01.2022, 15:01

Привет! А вы не знаете, почему параметр [FilesMove] не работает для перемещения файлов в системные папки? К примеру:

[FilesMove]
GOST_A.FON="C:\Windows\Fonts"
[FilesMove] GOST_A.FON="C:\Windows\Fonts"
 
[FilesMove]
GOST_A.FON="C:\Windows\Fonts"

Потому что Fonts это не просто папка. Это хранилище шрифтов. Можно туда записать, а вот удалить оттуда просто так нельзя. Даже с админскими привелегиями.

А, че та не заметил что в папку font, внимательность что-то в последнее время хромает).
Можно скорей всего зарегать шрифт в реестре Скопировано[RegistryValueWrite] в раздел СкопированоHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts, а как засунуть сторонний, не знаю.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
1◄Страница 3 из 7► 7