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

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

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

Попробовать "виртуальный portable"? Вы ThinApp имеете в виду? Тоже пробовал - ThinApp не находит нужную точку входа((

А вы не знаете, как вшить в первый exe команду о том, чтобы при его завершении открывался второй exe?

CMD воспользуйтесь, запустит лаунчер и будет ждать его завершения, а после удалит файлы или папки(в гугле примером море)

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

Да! Как раз в инете ищу, как такое реализовать)

Привет! Как-то себе делал майнкрафт версии 1.17.1 портативным с помощью лаунчера на C#. Могу скинуть если надо.

Цитата: Mikhail от 27.01.2022, 11:39

CMD воспользуйтесь, запустит лаунчер и будет ждать его завершения, а после удалит файлы или папки(в гугле примером море)

Эх, не смог найти((

Быть может, в сам bat-файл запуска можно вписать дополнительный код, который бы удалял файлы?

@java\bin\javaw.exe -jar Minecraft.exe

@java\bin\javaw.exe -jar Minecraft.exe

 

Как пример, rmdir - удаление папки, DEL - Файлы, дописать процесс отслеживания и путь запускаемого файла.

@echo off
start "" "путь до файла"
set process=процесс.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
RMDIR /s /q ""
Del /q /s ""

 

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

Спасибо огромное!

Цитата: Mikhail от 27.01.2022, 13:10

Как пример, rmdir - удаление папки, DEL - Файлы, дописать процесс отслеживания и путь запускаемого файла.

 
 
 
 
@echo off
start "" "путь до файла"
set process=процесс.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
RMDIR /s /q ""
Del /q /s ""
@echo off start "" "путь до файла" set process=процесс.exe :check TIMEOUT /T 2 tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul if %errorLevel% == 0 goto :check RMDIR /s /q "" Del /q /s ""
 
@echo off
start "" "путь до файла"
set process=процесс.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
RMDIR /s /q ""
Del /q /s ""

 

Блин, почему-то работает через раз. Иногда консоль, следящая за процессом игры, вылезает и сканирует диспетчер задач, а иногда не вылезает, и, следовательно, следы не подчищаются. Хм...

Странно, я проверил перед тем как выложить(на блокноте), работать должно отлично.
Может процесс меняется в процессе или завершается ¯\_(ツ)_/¯.

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

Сам Майнкрафт имеет процесс javaw.exe. Когда он закрывается, временные файлы не удаляются (диспетчере задач процесс javaw.exe завершился). 
Вот, как выглядит код запуска Майнкрафт. Который раз открываю батник, он делает отсчет с двух и закрывается, переставая следить за состоянием javaw.exe.

@echo off
start "" "Launcher.exe"
set process=javaw.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
rmdir /s /q "C:\ProgramData\Oracle"
rmdir /s /q "%USERPROFILE%\.tl"
rmdir /s /q "%USERPROFILE%\AppData\Roaming\.tlauncher"

 

Закрывается как отсчет проходит, потому что нет процесса, надо следить за чем то другим значит, тут я уже не знаю.

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

Придумал! Сделал два бат-файла. Один следит за процессом лаунчера, а затем, как процесс лаунчера завершается, первый батник запускает второй, который и следит за процессом игры, javaw.exe!
Первый батник:

@echo off
start "" "Launcher.exe"
set process=Launcher.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul
if %errorLevel% == 0 goto :check
start "" "Minecraft2.bat"

Второй батник:

@echo off
set process=javaw.exe
:check
TIMEOUT /T 2
tasklist /FI "IMAGENAME eq %process%" /NH | findstr /i "%process%">nul

if %errorLevel% == 0 goto :check
rmdir /s /q "C:\ProgramData\Oracle"
rmdir /s /q "%USERPROFILE%\.tl"
rmdir /s /q "%USERPROFILE%\AppData\Roaming\.tlauncher"

 

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