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