Author: ekohl Date: Wed Mar 22 21:59:06 2017 New Revision: 74222
URL: http://svn.reactos.org/svn/reactos?rev=74222&view=rev Log: [AT] - Confirm deleting all jobs. - Fix typos in resources and add missing usage text.
Modified: trunk/reactos/base/applications/cmdutils/at/at.c trunk/reactos/base/applications/cmdutils/at/lang/de-DE.rc trunk/reactos/base/applications/cmdutils/at/lang/en-US.rc trunk/reactos/base/applications/cmdutils/at/resource.h
Modified: trunk/reactos/base/applications/cmdutils/at/at.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils/... ============================================================================== --- trunk/reactos/base/applications/cmdutils/at/at.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/cmdutils/at/at.c [iso-8859-1] Wed Mar 22 21:59:06 2017 @@ -239,6 +239,57 @@ szBuffer[79] = UNICODE_NULL;
ConPrintf(StdOut, L"%s\n", szBuffer); +} + + +static +BOOL +Confirm(VOID) +{ + HINSTANCE hInstance; + WCHAR szYesBuffer[8]; + WCHAR szNoBuffer[8]; + WCHAR szInput[80]; + DWORD dwOldMode; + DWORD dwRead = 0; + BOOL ret = FALSE; + HANDLE hFile; + + hInstance = GetModuleHandleW(NULL); + LoadStringW(hInstance, IDS_CONFIRM_YES, szYesBuffer, _countof(szYesBuffer)); + LoadStringW(hInstance, IDS_CONFIRM_NO, szNoBuffer, _countof(szNoBuffer)); + + ZeroMemory(szInput, sizeof(szInput)); + + hFile = GetStdHandle(STD_INPUT_HANDLE); + GetConsoleMode(hFile, &dwOldMode); + + SetConsoleMode(hFile, ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT); + + for (;;) + { + ConResPrintf(StdOut, IDS_CONFIRM_QUESTION); + + ReadConsoleW(hFile, szInput, _countof(szInput), &dwRead, NULL); + + szInput[0] = towupper(szInput[0]); + if (szInput[0] == szYesBuffer[0]) + { + ret = TRUE; + break; + } + else if (szInput[0] == 13 || szInput[0] == szNoBuffer[0]) + { + ret = FALSE; + break; + } + + ConResPrintf(StdOut, IDS_CONFIRM_INVALID); + } + + SetConsoleMode(hFile, dwOldMode); + + return ret; }
@@ -585,8 +636,9 @@
if (ulJobId == (ULONG)-1 && bForceDelete == FALSE) { - ConResPrintf(StdOut, IDS_CONFIRM_DELETE); - return 0; + ConResPrintf(StdOut, IDS_DELETE_ALL); + if (!Confirm()) + return 0; }
Status = NetScheduleJobDel(pszComputerName,
Modified: trunk/reactos/base/applications/cmdutils/at/lang/de-DE.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils/... ============================================================================== --- trunk/reactos/base/applications/cmdutils/at/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/cmdutils/at/lang/de-DE.rc [iso-8859-1] Wed Mar 22 21:59:06 2017 @@ -2,26 +2,41 @@
STRINGTABLE BEGIN - IDS_USAGE "Mit dem AT Befeht können Befehle und Programme zu einem vorbestimmten\n\ + IDS_USAGE "Mit dem AT Befehl können Befehle und Programme zu einem vorbestimmten\n\ Termin gestartet werden. Der Zeitplandienst muss gestartet sein, um den\n\ -Befeht AT zu verwenden.\n\n\ +Befehl AT zu verwenden.\n\n\ AT [\\Computername] [ [Kennung] [/DELETE] | /DELETE [/YES]]\n\ AT [\\Computername] Zeit [/INTERACTIVE]\n\ [ /EVERY:Datum[,...] | /NEXT:Datum[,...]] ""Befehl""\n\n\ -\\Computername ...\n\ -Kennung ...\n\ -/DELETE ...\n\ -/YES ...\n\ +\\Computername Gibt einen Remotecomputer an. Ohne diesen Parameter werden\n\ + die Befehle auf dem lokalen Computer ausgeführt.\n\ +Kennung Eine Identifikationsnummer, die dem geplanten Befehl\n\ + zugeteilt wird.\n\ +/DELETE Löscht geplante Befehle. Ohne Kennung werden alle geplanten\n\ + Befehle auf dem Computer gelöscht.\n\ +/YES In Verbindung mit /DELETE werden die geplanten Befehle ohne\n\ + weitere Bestätiging gelöscht.\n\ Zeit Gibt die Zeit an, zu der ein Befehl ausgeführt werden soll.\n\ -/INTERACTIVE ...\n\ -/EVERY:Datum[,...] ...\n\ -/NEXT:Datum[,...] ...\n\ +/INTERACTIVE Ermöglicht dem Aufrag, Eingaben von dem Benutzer\n\ + anzunehmen, der angemeldet ist, wenn der Auftrag ausgeführt\n\ + wird.\n\ +/EVERY:Datum[,...] Führt den Befehl zu jedem der angegebenen Tage der Woche\n\ + oder des Monats aus. Ohne Angabe eines Datums wird der\n\ + aktuelle Tag des Monats angenommen.\n\ +/NEXT:Datum[,...] Führt den Befehl am nächsten angegebenen Tage der Woche\n\ + oder des Monats (z.B. nächsten Montag) aus. Ohne Angabe\n\ + eines Datums wird der aktuelle Tag des Monats angenommen.\n\ ""Befehl"" Ist der auszuführende Befehl oder das Stapelprogramm.\n"
- IDS_CONFIRM_DELETE "Dieser Vorgang wird alle geplanten Aufräge löschen.\nMöchten Sie diesen Vorgang fortsetzen? (J/N) [N] " + IDS_DELETE_ALL "Dieser Vorgang wird alle geplanten Aufträge löschen.\n" IDS_NEW_JOB "Neuer Auftrag hinzugefügt. Kennung = %lu\n" IDS_JOBS_LIST "Statuskenn. Tag Zeit Befehlszeile\n" IDS_NO_ENTRIES "Es sind keine Einträge in der Liste.\n" + + IDS_CONFIRM_QUESTION "Möchten Sie diesen Vorgang fortsetzen? (J/N) [N]: " + IDS_CONFIRM_INVALID "\nDies ist eine ungültige Antwort.\n" + IDS_CONFIRM_YES "J" + IDS_CONFIRM_NO "N"
IDS_TODAY "Heute" IDS_TOMORROW "Morgen"
Modified: trunk/reactos/base/applications/cmdutils/at/lang/en-US.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils/... ============================================================================== --- trunk/reactos/base/applications/cmdutils/at/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/cmdutils/at/lang/en-US.rc [iso-8859-1] Wed Mar 22 21:59:06 2017 @@ -16,8 +16,8 @@ scheduled commands on the computer are canceled.\n\ /YES Used with cancel all jobs command when no further\n\ confirmation is desired.\n\ -Zeit Specifies the time when command is to run.\n\ -/INTERACTIVE Allows the ob to interact with the desktop of the user\n\ +time Specifies the time when command is to run.\n\ +/INTERACTIVE Allows the job to interact with the desktop of the user\n\ who is logged on at the time the job runs.\n\ /EVERY:date[,...] Runs the command on each specified day(s) of the week or\n\ month. If date is omitted, the current day of the month\n\ @@ -27,10 +27,15 @@ current day of the month is assumed.\n\ ""command"" Is the command or batch program to be run.\n"
- IDS_CONFIRM_DELETE "This operation will delete all seduled jobs.\nDo you want to continue this operation? (Y/N) [N] " + IDS_DELETE_ALL "This operation will delete all scheduled jobs.\n" IDS_NEW_JOB "Added a new job with job ID = %lu\n" IDS_JOBS_LIST "Status ID Day Time Command Line\n" IDS_NO_ENTRIES "There are no entries in the list.\n" + + IDS_CONFIRM_QUESTION "Do you want to continue this operation? (Y/N) [N]: " + IDS_CONFIRM_INVALID "\nThis is an invalid response.\n" + IDS_CONFIRM_YES "Y" + IDS_CONFIRM_NO "N"
IDS_TODAY "Today" IDS_TOMORROW "Tomorrow"
Modified: trunk/reactos/base/applications/cmdutils/at/resource.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/cmdutils/... ============================================================================== --- trunk/reactos/base/applications/cmdutils/at/resource.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/cmdutils/at/resource.h [iso-8859-1] Wed Mar 22 21:59:06 2017 @@ -2,7 +2,7 @@
#define IDS_USAGE 100
-#define IDS_CONFIRM_DELETE 105 +#define IDS_DELETE_ALL 105 #define IDS_NEW_JOB 106 #define IDS_JOBS_LIST 107 #define IDS_NO_ENTRIES 108 @@ -24,3 +24,8 @@ #define IDS_TIME 125 #define IDS_INTERACTIVE 126 #define IDS_COMMAND 127 + +#define IDS_CONFIRM_QUESTION 130 +#define IDS_CONFIRM_INVALID 131 +#define IDS_CONFIRM_YES 132 +#define IDS_CONFIRM_NO 133