[TASKKILL]

* Sync with Wine 1.7.27.
CORE-8540

svn path=/trunk/; revision=64648
This commit is contained in:
Amine Khaldi 2014-10-09 13:03:36 +00:00
parent 613952ea4c
commit 59df91f2ea
7 changed files with 111 additions and 100 deletions

View file

@ -1,19 +1,19 @@
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
STRING_USAGE "taskkill [/?] [/f] [/im Prozess Name | /pid Prozess ID]\n"
STRING_INVALID_OPTION "Fehler: Unbekannte oder ungülige Kommandozeilenoption angegeben.\n"
STRING_INVALID_PARAM "Fehler: Ungültiger Kommandozeilenparameter angegeben.\n"
STRING_MISSING_OPTION "Fehler: Eine der Optionen /im oder /pid muss angegeben werden.\n"
STRING_MISSING_PARAM "Fehler: Option %1 erwartet einen Kommandozeilenparameter.\n"
STRING_MUTUAL_EXCLUSIVE "Fehler: Optionen /im und /pid schließen sich gegenseitig aus.\n"
STRING_CLOSE_PID_SEARCH "Schließen-Befehl an oberstes Fenster des Prozesses mit PID %1!u! gesendet.\n"
STRING_CLOSE_PROC_SRCH "Schließen-Befehl an oberstes Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n"
STRING_TERM_PID_SEARCH "Prozess mit PID %1!u! wurde erzwungenermaßen beendet.\n"
STRING_TERM_PROC_SEARCH "Prozess ""%1"" mit PID %2!u! wurde erzwungenermaßen beendet.\n"
STRING_SEARCH_FAILED "Fehler: Konnte Prozess ""%1"" nicht finden.\n"
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"
END
{
STRING_USAGE, "Usage: taskkill [/?] [/f] [/im Prozess Name | /pid Prozess ID]\n"
STRING_INVALID_OPTION, "Fehler: Unbekannte oder ungülige Kommandozeilenoption angegeben.\n"
STRING_INVALID_PARAM, "Fehler: Ungültiger Kommandozeilenparameter angegeben.\n"
STRING_MISSING_OPTION, "Fehler: Eine der Optionen /im oder /pid muss angegeben werden.\n"
STRING_MISSING_PARAM, "Fehler: Option %1 erwartet einen Kommandozeilenparameter.\n"
STRING_MUTUAL_EXCLUSIVE, "Fehler: Optionen /im und /pid schließen sich gegenseitig aus.\n"
STRING_CLOSE_PID_SEARCH, "Schließen-Befehl an oberstes Fenster des Prozesses mit PID %1!u! gesendet.\n"
STRING_CLOSE_PROC_SRCH, "Schließen-Befehl an oberstes Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n"
STRING_TERM_PID_SEARCH, "Prozess mit PID %1!u! wurde erzwungenermaßen beendet.\n"
STRING_TERM_PROC_SEARCH, "Prozess ""%1"" mit PID %2!u! wurde erzwungenermaßen beendet.\n"
STRING_SEARCH_FAILED, "Fehler: Konnte Prozess ""%1"" nicht finden.\n"
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"
}

View file

@ -1,19 +1,19 @@
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
STRING_USAGE "taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
STRING_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
STRING_INVALID_PARAM "Error: Invalid command line parameter specified.\n"
STRING_MISSING_OPTION "Error: One of options /im or /pid must be specified.\n"
STRING_MISSING_PARAM "Error: Option %1 expects a command line parameter.\n"
STRING_MUTUAL_EXCLUSIVE "Error: Options /im and /pid are mutually exclusive.\n"
STRING_CLOSE_PID_SEARCH "Close message sent to top-level windows of process with PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
STRING_TERM_PID_SEARCH "Process with PID %1!u! was forcibly terminated.\n"
STRING_TERM_PROC_SEARCH "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
STRING_SEARCH_FAILED "Error: Could not find process ""%1"".\n"
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"
END
{
STRING_USAGE, "Usage: taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n"
STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n"
STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n"
STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n"
STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n"
STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n"
STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n"
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"
}

View file

@ -3,19 +3,19 @@
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
STRING_USAGE "taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n"
STRING_INVALID_OPTION "Eroare: Opțiune specificată nevalidă sau necunoscută.\n"
STRING_INVALID_PARAM "Eroare: Parametrul de comandă specificat este nevalid.\n"
STRING_MISSING_OPTION "Eroare: Trebuie specificată una dintre opțiunile /im sau /pid.\n"
STRING_MISSING_PARAM "Eroare: Opțiunea %1 necesită un parametru.\n"
STRING_MUTUAL_EXCLUSIVE "Eroare: Opțiunile /im și /pid sunt reciproc exclusive.\n"
STRING_CLOSE_PID_SEARCH "Către fereastra procesului cu PID %1!u! a fost emis un mesaj de închidere.\n"
STRING_CLOSE_PROC_SRCH "Către fereastra procesului «%1» cu PID %2!u! a fost emis un mesaj de închidere.\n"
STRING_TERM_PID_SEARCH "Procesul cu PID %1!u! a fost oprit în mod forțat.\n"
STRING_TERM_PROC_SEARCH "Procesul «%1» cu PID %2!u! a fost oprit în mod forțat.\n"
STRING_SEARCH_FAILED "Eroare: Nu se poate găsi procesul «%1».\n"
STRING_ENUM_FAILED "Eroare: Nu se poate enumera lista de procese.\n"
STRING_TERMINATE_FAILED "Eroare: Procesul «%1» nu poate fi oprit.\n"
STRING_SELF_TERMINATION "Eroare: Auto-terminarea nu este permisă.\n"
END
{
STRING_USAGE, "Usage: taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n"
STRING_INVALID_OPTION, "Eroare: Opțiune specificată nevalidă sau necunoscută.\n"
STRING_INVALID_PARAM, "Eroare: Parametrul de comandă specificat este nevalid.\n"
STRING_MISSING_OPTION, "Eroare: Trebuie specificată una dintre opțiunile /im sau /pid.\n"
STRING_MISSING_PARAM, "Eroare: Opțiunea %1 necesită un parametru.\n"
STRING_MUTUAL_EXCLUSIVE, "Eroare: Opțiunile /im și /pid sunt reciproc exclusive.\n"
STRING_CLOSE_PID_SEARCH, "Către fereastra procesului cu PID %1!u! a fost emis un mesaj de închidere.\n"
STRING_CLOSE_PROC_SRCH, "Către fereastra procesului «%1» cu PID %2!u! a fost emis un mesaj de închidere.\n"
STRING_TERM_PID_SEARCH, "Procesul cu PID %1!u! a fost oprit în mod forțat.\n"
STRING_TERM_PROC_SEARCH, "Procesul «%1» cu PID %2!u! a fost oprit în mod forțat.\n"
STRING_SEARCH_FAILED, "Eroare: Nu se poate găsi procesul «%1».\n"
STRING_ENUM_FAILED, "Eroare: Nu se poate enumera lista de procese.\n"
STRING_TERMINATE_FAILED, "Eroare: Procesul «%1» nu poate fi oprit.\n"
STRING_SELF_TERMINATION, "Eroare: Auto-terminarea nu este permisă.\n"
}

View file

@ -1,19 +1,19 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
STRING_USAGE "TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n"
STRING_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
STRING_INVALID_PARAM "Error: Invalid command line parameter specified.\n"
STRING_MISSING_OPTION "Error: One of options /im or /pid must be specified.\n"
STRING_MISSING_PARAM "Error: Option %1 expects a command line parameter.\n"
STRING_MUTUAL_EXCLUSIVE "Error: Options /im and /pid are mutually exclusive.\n"
STRING_CLOSE_PID_SEARCH "Close message sent to top-level windows of process with PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
STRING_TERM_PID_SEARCH "Process with PID %1!u! was forcibly terminated.\n"
STRING_TERM_PROC_SEARCH "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
STRING_SEARCH_FAILED "Error: Could not find process ""%1"".\n"
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"
END
{
STRING_USAGE, "Usage: TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n"
STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n"
STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n"
STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n"
STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n"
STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n"
STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n"
STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n"
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"
}

View file

@ -5,19 +5,19 @@
LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
STRING_USAGE "taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
STRING_INVALID_OPTION "Gabim: Panjohur ose i pavlefshëm opsioni linjes komandes i specifikuar.\n"
STRING_INVALID_PARAM "Gabim: Pavlefshëm parametri i specifikuar ne linjen e komandes.\n"
STRING_MISSING_OPTION "Gabim: Njera nga opsionet /im ose /pid duhet te specifikohet.\n"
STRING_MISSING_PARAM "Gabim: Opsioni %1 kalon parametrin i linjes se komandes.\n"
STRING_MUTUAL_EXCLUSIVE "Gabim: Opsioni /im dhe /pid janë exclusiv reciprokisht.\n"
STRING_CLOSE_PID_SEARCH "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve me PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve ""%1"" me PID %2!u!.\n"
STRING_TERM_PID_SEARCH "Proceso me PID %1!u! u mbyll me force.\n"
STRING_TERM_PROC_SEARCH "Proces ""%1"" me PID %2!u! u mbyll me force.\n"
STRING_SEARCH_FAILED "Gabim: Nuk u gjend procesi ""%1"".\n"
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"
END
{
STRING_USAGE, "Usage: taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
STRING_INVALID_OPTION, "Gabim: Panjohur ose i pavlefshëm opsioni linjes komandes i specifikuar.\n"
STRING_INVALID_PARAM, "Gabim: Pavlefshëm parametri i specifikuar ne linjen e komandes.\n"
STRING_MISSING_OPTION, "Gabim: Njera nga opsionet /im ose /pid duhet te specifikohet.\n"
STRING_MISSING_PARAM, "Gabim: Opsioni %1 kalon parametrin i linjes se komandes.\n"
STRING_MUTUAL_EXCLUSIVE, "Gabim: Opsioni /im dhe /pid janë exclusiv reciprokisht.\n"
STRING_CLOSE_PID_SEARCH, "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve me PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH, "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve ""%1"" me PID %2!u!.\n"
STRING_TERM_PID_SEARCH, "Proceso me PID %1!u! u mbyll me force.\n"
STRING_TERM_PROC_SEARCH, "Proces ""%1"" me PID %2!u! u mbyll me force.\n"
STRING_SEARCH_FAILED, "Gabim: Nuk u gjend procesi ""%1"".\n"
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"
}

View file

@ -32,7 +32,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(taskkill);
static int force_termination;
static BOOL force_termination = FALSE;
static WCHAR **task_list;
static unsigned int task_count;
@ -450,36 +450,46 @@ static BOOL add_to_task_list(WCHAR *name)
* options are detected as parameters when placed after options that accept one. */
static BOOL process_arguments(int argc, WCHAR *argv[])
{
static const WCHAR slashForceTerminate[] = {'/','f',0};
static const WCHAR slashImage[] = {'/','i','m',0};
static const WCHAR slashPID[] = {'/','p','i','d',0};
static const WCHAR slashHelp[] = {'/','?',0};
static const WCHAR slashTerminateChildren[] = {'/','t',0};
static const WCHAR opForceTerminate[] = {'f',0};
static const WCHAR opImage[] = {'i','m',0};
static const WCHAR opPID[] = {'p','i','d',0};
static const WCHAR opHelp[] = {'?',0};
static const WCHAR opTerminateChildren[] = {'t',0};
if (argc > 1)
{
int i;
BOOL has_im = 0, has_pid = 0;
WCHAR *argdata;
BOOL has_im = FALSE, has_pid = FALSE;
/* Only the lone help option is recognized. */
if (argc == 2 && !strcmpW(slashHelp, argv[1]))
if (argc == 2)
{
taskkill_message(STRING_USAGE);
exit(0);
argdata = argv[1];
if ((*argdata == '/' || *argdata == '-') && !strcmpW(opHelp, argdata + 1))
{
taskkill_message(STRING_USAGE);
exit(0);
}
}
for (i = 1; i < argc; i++)
{
int got_im = 0, got_pid = 0;
BOOL got_im = FALSE, got_pid = FALSE;
if (!strcmpiW(slashTerminateChildren, argv[i]))
WINE_FIXME("/T not supported\n");
if (!strcmpiW(slashForceTerminate, argv[i]))
force_termination = 1;
argdata = argv[i];
if (*argdata != '/' && *argdata != '-')
goto invalid;
argdata++;
if (!strcmpiW(opTerminateChildren, argdata))
WINE_FIXME("argument T not supported\n");
if (!strcmpiW(opForceTerminate, argdata))
force_termination = TRUE;
/* Options /IM and /PID appear to behave identically, except for
* the fact that they cannot be specified at the same time. */
else if ((got_im = !strcmpiW(slashImage, argv[i])) ||
(got_pid = !strcmpiW(slashPID, argv[i])))
else if ((got_im = !strcmpiW(opImage, argdata)) ||
(got_pid = !strcmpiW(opPID, argdata)))
{
if (!argv[i + 1])
{
@ -488,8 +498,8 @@ static BOOL process_arguments(int argc, WCHAR *argv[])
return FALSE;
}
if (got_im) has_im = 1;
if (got_pid) has_pid = 1;
if (got_im) has_im = TRUE;
if (got_pid) has_pid = TRUE;
if (has_im && has_pid)
{
@ -504,6 +514,7 @@ static BOOL process_arguments(int argc, WCHAR *argv[])
}
else
{
invalid:
taskkill_message(STRING_INVALID_OPTION);
taskkill_message(STRING_USAGE);
return FALSE;

View file

@ -234,7 +234,7 @@ reactos/dll/cpl/inetcpl # Synced to Wine-1.7.27
ReactOS shares the following programs with Winehq.
reactos/base/applications/cmdutils/reg # Synced to Wine-1.7.27
reactos/base/applications/cmdutils/taskkill # Synced to Wine-1.7.1
reactos/base/applications/cmdutils/taskkill # Synced to Wine-1.7.27
reactos/base/applications/cmdutils/wmic # Synced to Wine-1.7.1
reactos/base/applications/cmdutils/xcopy # Synced to Wine-1.7.1
reactos/base/applications/games/winmine # Forked at Wine-1_3_5