4

Can someone tell me what do I need to write in [X] to make the process Maplestory.exe be killed when it will start? I don't want to use timing commands, thanks! (the gamelauncher.exe causes the maplestory.exe to run)

@echo off
start D:\Games\MapleStory\GameLauncher.exe
[X]
taskkill /im MapleStory.exe
exit

5 Answers 5

6

I would pipe the output from tasklist into find, search for maplestory, and use an IF statement and a GOTO to continue looping, checking for that process, until it's found. Once it's found, then you can GOTO a different point to kill the task.

Something like this should do the trick:

:search
tasklist|find "maple"
IF %ERRORLEVEL% == 0 GOTO :found
TIMEOUT /T 1
GOTO :search

:found
taskkill /im maplestory.exe

(The TIMEOUT command pauses the script for 1 second. This will help prevent it from sucking up too much CPU constantly running that loop.)

1
  • 1
    Shouldn't it be %ERRORLEVEL% == 0 instead of %ERRORLEVEL% = 0
    – Burhan
    Apr 7, 2021 at 16:07
1

Why must you run anything? You can simply attempt to terminate the process at any time and then take action upon success (&& operator) or failure (|| operator). You can simply loop via GOTO until you achieve success.

@echo off
start D:\Games\MapleStory\GameLauncher.exe
:killMapleStory
taskkill /im MapleStory.exe >nul 2>nul || goto killMapleStory
exit

You might want to introduce a 1 second delay into the loop just to conserve CPU resources. MapleStory will never run for more than ~1 second.

@echo off
start D:\Games\MapleStory\GameLauncher.exe
:killMapleStory
timeout /t 1 /nobreak >nul
taskkill /im MapleStory.exe >nul 2>nul || goto killMapleStory
exit
1

@nhinkle, had to modify the syntax a little on my Win7 64bit system.

    :search
    tasklist|find "maplestory.exe"
    IF %ERRORLEVEL% == 0 GOTO :found
    TIMEOUT /T 1
    GOTO :search

    :found
    TIMEOUT /T 3
    taskkill /IM maplestory.exe 
    exit
1
0
set maple=D:\Games\MapleStory\GameLauncher.exe
tasklist | FINDSTR maplestory.exe && taskkill maplestory.exe || start %maple%

If it does not work try quoting D:\Games\MapleStory\GameLauncher.exe

-2
powershell -windowstate hidden
:9
tasklist /fi "imagename eq Chrome.exe" /fi "CpuTime gt 00:00:20" > Uit5.dat & findstr "INFO" uit5.dat >NUL & if errorlevel 1 (choice /d y /t 2|choice /d y /t 2)
goto :9
REM you could write to a file, and check if the criteria "INFO" is not present, therefore your original criteria is true.  For Example  You use the criteria chrome with CPU time greater than 20 seconds and make your computer beep when the criteria is existing.

Or More Generally

  powershell -windowstate hidden exit
  :9
  tasklist /fi "imagename eq %1" /fi "CpuTime gt %2" > Uit5.dat & findstr "INFO" uit5.dat >NUL & if errorlevel 1 goto :8
goto :9
:8
exit

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .