[TASKKILL] Improve taskkill utility (#2459)

Make the argument process of command utility "taskkill" behave same as what Windows does.

Now options are no longer detected as parameters when placed after options that accept one.
For example, `taskkill /im /f` will no longer regard `/f` as a process name.

If `/?` and `/f` options appear more than once, an error will be reported, telling they are not allowed more than once.
(e.g. `taskkill /f /pid 1000 /f`)

If only one option `/f` is given without `/pid` or `/im`, an eerror will be reported, telling that one must specify `/pid` or `/im`.
(e.g. `taskkill /f`)

Additional changes:
- Combine SendCloseMessages() and TerminateProcesses() functions.
- Protect new written code with `#ifdef __REACTOS__`
This commit is contained in:
He Yang 2020-04-03 10:37:53 -05:00 committed by GitHub
parent ded98b846e
commit 5874c66e41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 347 additions and 1 deletions

View file

@ -16,4 +16,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Fehler: Prozessliste kann nicht aufgebaut werden.\n"
STRING_TERMINATE_FAILED, "Fehler: Prozess ""%1"" kann nicht beendet werden.\n"
STRING_SELF_TERMINATION, "Fehler: Der Prozess kann sich nicht selbst beenden.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -16,4 +16,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Error: Unable to enumerate the process list.\n"
STRING_TERMINATE_FAILED, "Error: Unable to terminate process ""%1"".\n"
STRING_SELF_TERMINATION, "Error: Process self-termination is not permitted.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -23,4 +23,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Errore: Impossibile enumerare la lista dei processi.\n"
STRING_TERMINATE_FAILED, "Errore: Impossibile terminare il processo ""%1"".\n"
STRING_SELF_TERMINATION, "Errore: L'auto-terminazione non è consentita.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -16,4 +16,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Błąd: Nie można wyliczyć listy procesów.\n"
STRING_TERMINATE_FAILED, "Błąd: Nie można zakończyć procesu ""%1"".\n"
STRING_SELF_TERMINATION, "Błąd: Proces nie może zakończyć sam siebie.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -18,4 +18,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Eroare: Procesele nu au putut fi enumerate.\n"
STRING_TERMINATE_FAILED, "Eroare: Procesul «%1» nu poate fi oprit.\n"
STRING_SELF_TERMINATION, "Eroare: Auto-terminarea nu este permisă.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -18,4 +18,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Ошибка: Не удается получить список процессов.\n"
STRING_TERMINATE_FAILED, "Ошибка: Не удается завершить процесс ""%1"".\n"
STRING_SELF_TERMINATION, "Ошибка: Процесс не может завершить сам себя.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -20,4 +20,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Gabim: Në pamundësi për të numëruar listën proceseve.\n"
STRING_TERMINATE_FAILED, "Gabim: Pamundur mbyllja e proceseve ""%1"".\n"
STRING_SELF_TERMINATION, "Gabim: Procesi vetë-përfundimi nuk është i lejuar.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -18,4 +18,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "Yanlışlık: İşlem dizelgesi numaralandırılamaz.\n"
STRING_TERMINATE_FAILED, "Yanlışlık: ""%1"" işlemi sonlandırılamaz.\n"
STRING_SELF_TERMINATION, "Yanlışlık: İşlemi kendi kendine sonlandırmaya izin verilmedi.\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}

View file

@ -1,4 +1,7 @@
/* Simplified Chinese translation by Henry Tang Ih 2016 (henrytang2@hotmail.com) */
/* Simplified Chinese translation by
Henry Tang Ih 2016 (henrytang2@hotmail.com)
He Yang 2020 (1160386205@qq.com)
*/
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
@ -18,4 +21,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "错误: 无法枚举进程列表。\n"
STRING_TERMINATE_FAILED, "错误: 无法终止进程 ""%1""。\n"
STRING_SELF_TERMINATION, "错误: 不允许终止自身。\n"
STRING_PARAM_TOO_MUCH, "错误:无效语法。选项 '%1' 不允许超过 '%2!d!' 次。\n"
STRING_INVALID_SYNTAX, "错误:无效语法。\n"
}

View file

@ -18,4 +18,6 @@ STRINGTABLE
STRING_ENUM_FAILED, "錯誤: 無法枚舉處理序清單。\n"
STRING_TERMINATE_FAILED, "錯誤: 無法終止處理序 ""%1""。\n"
STRING_SELF_TERMINATION, "錯誤: 不允許自我終止的處理序。\n"
STRING_PARAM_TOO_MUCH, "Error: Invalid syntax. '%1' option is not allowed more than '%2!d!' time(s).\n"
STRING_INVALID_SYNTAX, "Error: Invalid syntax.\n"
}