[LABEL] Prompt the user to confirm the deletion of a volume label

This commit is contained in:
Eric Kohl 2019-09-22 15:31:19 +02:00
parent 6bfe4f68af
commit 87ecf824c0
23 changed files with 92 additions and 5 deletions

View file

@ -102,6 +102,43 @@ IsValidPathName(LPCWSTR pszPath)
}
static
BOOL
PromptYesNo(VOID)
{
WCHAR szOptions[4];
WCHAR szInput[16];
BOOL bResult = FALSE;
LoadString(GetModuleHandle(NULL), STRING_LABEL_OPTIONS, szOptions, ARRAYSIZE(szOptions));
for (;;)
{
ConPuts(StdOut, L"\n");
ConResPuts(StdOut, STRING_LABEL_PROMPT);
ConInString(szInput, ARRAYSIZE(szInput));
if (towupper(szInput[0]) == szOptions[0])
{
bResult = TRUE;
break;
}
else if (towupper(szInput[0]) == szOptions[1])
{
bResult = FALSE;
break;
}
ConPuts(StdOut, L"\n");
}
ConPuts(StdOut, L"\n");
return bResult;
}
int wmain(int argc, WCHAR *argv[])
{
WCHAR szRootPath[] = L" :\\";
@ -204,6 +241,12 @@ int wmain(int argc, WCHAR *argv[])
ConInString(szLabel, ARRAYSIZE(szLabel));
ConPuts(StdOut, L"\n");
if (wcslen(szLabel) == 0)
{
if (PromptYesNo() == FALSE)
return 0;
}
}
if (!SetVolumeLabelW(szRootPath, szLabel))

View file

@ -15,6 +15,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volume in drive %c: has no label\n"
STRING_LABEL_TEXT3 "Volume Serial Number is %04X-%04X\n"
STRING_LABEL_TEXT4 "Volume label (32 Characters, ENTER if none)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Neplatná specifikace jednotky\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -12,6 +12,8 @@ LABEL [Laufwerk:][Bezeichnung]\n\n\
STRING_LABEL_TEXT2 "Volume in Laufwerk %c: hat keine Bezeichnung\n"
STRING_LABEL_TEXT3 "Volumenummer: %04X-%04X\n"
STRING_LABEL_TEXT4 "Volumebezeichnung (32 Zeichen, EINGABETASTE für keine)? "
STRING_LABEL_PROMPT "Aktuelle Volumebezeichnung löschen (J/N)? "
STRING_LABEL_OPTIONS "JN"
STRING_ERROR_INVALID_DRIVE "Ungültige Laufwerksangaben\n"
STRING_ERROR_INVALID_LABEL "Unzulässige Volumebezeichnung\n"
END

View file

@ -16,6 +16,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volume in drive %c: has no label\n"
STRING_LABEL_TEXT3 "Volume Serial Number is %04X-%04X\n"
STRING_LABEL_TEXT4 "Volume label (32 Characters, ENTER if none)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Invalid drive specification\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -10,6 +10,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volume in drive %c: has no label\n"
STRING_LABEL_TEXT3 "Volume Serial Number is %04X-%04X\n"
STRING_LABEL_TEXT4 "Volume label (32 characters, ENTER if none)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Invalid drive specification\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "El volumen en la unidad %c: no tiene etiqueta\n"
STRING_LABEL_TEXT3 "El número de serie del volumen es %04X-%04X\n"
STRING_LABEL_TEXT4 "Etiqueta del volumen (32 Caracteres, INTRO para ninguna)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Especificación de unidad errónea\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Le disque %c: n'a pas de nom de volume\n"
STRING_LABEL_TEXT3 "Le numéro de serie du volume est %04X-%04X\n"
STRING_LABEL_TEXT4 "Nom de volume (32 Caractères, ENTREE si aucun) ? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Lecteur spécifié introuvable\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -14,6 +14,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "A (%c) megjajtóban lévõ kötetnek nincs címkéje.\n"
STRING_LABEL_TEXT3 "A kötet sorozatszáma %04X-%04X\n"
STRING_LABEL_TEXT4 "Új kötetcímke (32 betû, ENTER ha üres)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Érvénytelen meghajtó\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volume di drive %c: tidak berlabel\n"
STRING_LABEL_TEXT3 "Nomor Seri Volume adalah %04X-%04X\n"
STRING_LABEL_TEXT4 "Label Drive (32 Karakter, ENTER jika sudah)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Spesifikasi drive tidak benar\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -12,6 +12,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Il Volume nel disco %c: non ha etichetta\n"
STRING_LABEL_TEXT3 "Il numero di serie del Volume è %04X-%04X\n"
STRING_LABEL_TEXT4 "Etichetta del disco (32 Caratteri, INVIO per nessuna)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Disco non valido\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -11,6 +11,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "ドライブ %c: にはボリューム ラベルがありませんl\n"
STRING_LABEL_TEXT3 "ボリューム シリアル番号は %04X-%04X\n です"
STRING_LABEL_TEXT4 "ボリューム ラベルを 32 文字以内で入力してください。\n必要なければ Enter キーを押してください: "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "無効なドライブ指定です。\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -11,6 +11,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volumet i stasjon %c: er uten navn\n"
STRING_LABEL_TEXT3 "Volumserienummeret er %04X-%04X\n"
STRING_LABEL_TEXT4 "Volumnavn (32 tegn, Enter = intet navn)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Ugyldig stasjon angitt\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -20,6 +20,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Wolumin w napędzie %c: nie posiada etykiety\n"
STRING_LABEL_TEXT3 "Numer seryjny woluminu to: %04X-%04X\n"
STRING_LABEL_TEXT4 "Podaj etykietę (0-32 znaków, ENTER = brak etykiety) "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Nieprawidłowe określenie napędu\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volumul unității %c: nu este etichetat.\n"
STRING_LABEL_TEXT3 "Numărul de serie al volumului este %04X-%04X\n"
STRING_LABEL_TEXT4 "Introduceți eticheta unității (opțională, de 32 caractere), apoi ENTER "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Specificarea unității este eronată\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Том в устройстве %c: не имеет метки\n"
STRING_LABEL_TEXT3 "Серийный номер тома: %04X-%04X\n"
STRING_LABEL_TEXT4 "Метка тома (32 букв, ВВОД для пустой метки)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Неверное определение диска\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -17,6 +17,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volume in drive %c: has no label\n"
STRING_LABEL_TEXT3 "Volume Serial Number is %04X-%04X\n"
STRING_LABEL_TEXT4 "Volume label (32 Characters, ENTER if none)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Invalid drive specification\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -15,6 +15,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volumi në drive %c: has no label\n"
STRING_LABEL_TEXT3 "Numri Serial i Volumit është %04X-%04X\n"
STRING_LABEL_TEXT4 "Volume label (32 Characters, ENTER if none)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Specifikimi i drivit invalid\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -11,6 +11,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Volymen i enhet %c: är utan namn\n"
STRING_LABEL_TEXT3 "Volymens serienummer är %04X-%04X\n"
STRING_LABEL_TEXT4 "Volymnamn (32 tecken, Enter = inget namn)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Ogiltig enhet angiven\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "%c sürücüsünde birimin etiketi yok\n"
STRING_LABEL_TEXT3 "Birim Dizilik Numarası %04X-%04X\n"
STRING_LABEL_TEXT4 "Sürücü etiketi (32 damga, yok için Giriş)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Geçersiz sürücü belirtmesi.\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -19,6 +19,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "Том в пристрої %c: не має мiтки\n"
STRING_LABEL_TEXT3 "Серiйний номер тому: %04X-%04X\n"
STRING_LABEL_TEXT4 "Мiтка тому (32 букв, ENTER без мiтки)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "Невiрне визначення диску\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -13,6 +13,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "驱动器 %c 中的卷没有卷标。\n"
STRING_LABEL_TEXT3 "卷的序列号是 %04X-%04X\n"
STRING_LABEL_TEXT4 "驱动器卷标 (32 个字符, 按 ENTER 忽略)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "无效驱动器指定\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -14,6 +14,8 @@ LABEL [drive:][label]\n\n\
STRING_LABEL_TEXT2 "驅動器 %c 中的卷沒有卷標。\n"
STRING_LABEL_TEXT3 "卷的序列號是 %04X-%04X\n"
STRING_LABEL_TEXT4 "驅動器卷標 (32 個字元, 按 ENTER 忽略)? "
STRING_LABEL_PROMPT "Delete current volume label (Y/N)? "
STRING_LABEL_OPTIONS "YN"
STRING_ERROR_INVALID_DRIVE "無效驅動器指定\n"
STRING_ERROR_INVALID_LABEL "Invalid volume label\n"
END

View file

@ -2,11 +2,13 @@
#define RC_STRING_MAX_SIZE 3072
#define STRING_LABEL_HELP 661
#define STRING_LABEL_TEXT1 662
#define STRING_LABEL_TEXT2 663
#define STRING_LABEL_TEXT3 664
#define STRING_LABEL_TEXT4 665
#define STRING_LABEL_HELP 661
#define STRING_LABEL_TEXT1 662
#define STRING_LABEL_TEXT2 663
#define STRING_LABEL_TEXT3 664
#define STRING_LABEL_TEXT4 665
#define STRING_LABEL_PROMPT 666
#define STRING_LABEL_OPTIONS 667
#define STRING_ERROR_INVALID_DRIVE 106
#define STRING_ERROR_INVALID_LABEL 107