[REGEDIT]

- Implement Import/Export of hive files. Patch by Hermes Belusca (German translation by me)
See issue #7180 for more details.

svn path=/trunk/; revision=56869
This commit is contained in:
Thomas Faber 2012-07-11 23:04:41 +00:00
parent 8997e9de57
commit ac0e3ce65b
29 changed files with 260 additions and 42 deletions

View file

@ -260,7 +260,7 @@ BuildFilterStrings(TCHAR *Filter, PFILTERPAIR Pairs, int PairCount)
static BOOL InitOpenFileName(HWND hWnd, OPENFILENAME* pofn)
{
FILTERPAIR FilterPairs[3];
FILTERPAIR FilterPairs[4];
static TCHAR Filter[1024];
memset(pofn, 0, sizeof(OPENFILENAME));
@ -271,10 +271,12 @@ static BOOL InitOpenFileName(HWND hWnd, OPENFILENAME* pofn)
/* create filter string */
FilterPairs[0].DisplayID = IDS_FLT_REGFILES;
FilterPairs[0].FilterID = IDS_FLT_REGFILES_FLT;
FilterPairs[1].DisplayID = IDS_FLT_REGEDIT4;
FilterPairs[1].FilterID = IDS_FLT_REGEDIT4_FLT;
FilterPairs[2].DisplayID = IDS_FLT_ALLFILES;
FilterPairs[2].FilterID = IDS_FLT_ALLFILES_FLT;
FilterPairs[1].DisplayID = IDS_FLT_HIVFILES;
FilterPairs[1].FilterID = IDS_FLT_HIVFILES_FLT;
FilterPairs[2].DisplayID = IDS_FLT_REGEDIT4;
FilterPairs[2].FilterID = IDS_FLT_REGEDIT4_FLT;
FilterPairs[3].DisplayID = IDS_FLT_ALLFILES;
FilterPairs[3].FilterID = IDS_FLT_ALLFILES_FLT;
BuildFilterStrings(Filter, FilterPairs, COUNT_OF(FilterPairs));
pofn->lpstrFilter = Filter;
@ -432,11 +434,15 @@ static BOOL UnloadHive(HWND hWnd)
static BOOL ImportRegistryFile(HWND hWnd)
{
BOOL bRet = FALSE;
OPENFILENAME ofn;
TCHAR Caption[128], szTitle[256], szText[256];
HKEY hKeyRoot;
LPCTSTR pszKeyPath;
/* Figure out in which key path we are importing */
pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
InitOpenFileName(hWnd, &ofn);
LoadString(hInst, IDS_IMPORT_REG_FILE, Caption, COUNT_OF(Caption));
ofn.lpstrTitle = Caption;
@ -444,21 +450,65 @@ static BOOL ImportRegistryFile(HWND hWnd)
/* ofn.lCustData = ;*/
if (GetOpenFileName(&ofn))
{
FILE *fp = _wfopen(ofn.lpstrFile, L"r");
if (fp == NULL || !import_registry_file(fp))
/* Look at the extension of the file to determine its type */
if (ofn.nFileExtension >= 1 &&
_tcsicmp(ofn.lpstrFile + ofn.nFileExtension, TEXT("reg")) == 0) /* REGEDIT4 or Windows Registry Editor Version 5.00 */
{
LPSTR p = GetMultiByteString(ofn.lpstrFile);
fprintf(stderr, "Can't open file \"%s\"\n", p);
HeapFree(GetProcessHeap(), 0, p);
if (fp != NULL)
fclose(fp);
return FALSE;
/* Open the file */
FILE *fp = _wfopen(ofn.lpstrFile, L"r");
/* Import it */
if (fp == NULL || !import_registry_file(fp))
{
LPSTR p = GetMultiByteString(ofn.lpstrFile);
fprintf(stderr, "Can't open file \"%s\"\n", p);
HeapFree(GetProcessHeap(), 0, p);
bRet = FALSE;
}
else
{
/* Show successful import */
LoadString(hInst, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle));
LoadString(hInst, IDS_IMPORTED_OK, szText, COUNT_OF(szText));
MessageBox(NULL, szText, szTitle, MB_OK);
bRet = TRUE;
}
/* Close the file */
if (fp) fclose(fp);
}
else /* Registry Hive Files */
{
LoadString(hInst, IDS_QUERY_IMPORT_HIVE_CAPTION, szTitle, COUNT_OF(szTitle));
LoadString(hInst, IDS_QUERY_IMPORT_HIVE_MSG, szText, COUNT_OF(szText));
/* Display a confirmation message */
if (MessageBox(g_pChildWnd->hWnd, szText, szTitle, MB_ICONWARNING | MB_YESNO) == IDYES)
{
LONG lResult;
HKEY hSubKey;
/* Open the subkey */
lResult = RegOpenKeyEx(hKeyRoot, pszKeyPath, 0, KEY_WRITE, &hSubKey);
if (lResult == ERROR_SUCCESS)
{
/* Enable the 'restore' privilege, restore the hive then disable the privilege */
EnablePrivilege(SE_RESTORE_NAME, NULL, TRUE);
lResult = RegRestoreKey(hSubKey, ofn.lpstrFile, REG_FORCE_RESTORE);
EnablePrivilege(SE_RESTORE_NAME, NULL, FALSE);
/* Flush the subkey and close it */
RegFlushKey(hSubKey);
RegCloseKey(hSubKey);
}
/* Set the return value */
bRet = (lResult == ERROR_SUCCESS);
/* Display error, if any */
if (!bRet) ErrorMessageBox(hWnd, Caption, lResult);
}
}
LoadString(hInst, IDS_APP_TITLE, szTitle, sizeof(szTitle));
LoadString(hInst, IDS_IMPORTED_OK, szText, sizeof(szTitle));
/* show successful import */
MessageBox(NULL, szText, szTitle, MB_OK);
fclose(fp);
}
else
{
@ -470,7 +520,7 @@ static BOOL ImportRegistryFile(HWND hWnd)
pszKeyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
RefreshListView(g_pChildWnd->hListWnd, hKeyRoot, pszKeyPath);
return TRUE;
return bRet;
}
static UINT_PTR CALLBACK ExportRegistryFile_OFNHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
@ -529,6 +579,7 @@ static UINT_PTR CALLBACK ExportRegistryFile_OFNHookProc(HWND hdlg, UINT uiMsg, W
BOOL ExportRegistryFile(HWND hWnd)
{
BOOL bRet = FALSE;
OPENFILENAME ofn;
TCHAR ExportKeyPath[_MAX_PATH];
TCHAR Caption[128];
@ -553,20 +604,78 @@ BOOL ExportRegistryFile(HWND hWnd)
ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EXPORTRANGE);
if (GetSaveFileName(&ofn))
{
BOOL result;
DWORD format;
if (ofn.nFilterIndex == 1)
format = REG_FORMAT_5;
else
format = REG_FORMAT_4;
result = export_registry_key(ofn.lpstrFile, ExportKeyPath, format);
if (!result)
switch (ofn.nFilterIndex)
{
LPSTR p = GetMultiByteString(ofn.lpstrFile);
fprintf(stderr, "Can't open file \"%s\"\n", p);
HeapFree(GetProcessHeap(), 0, p);
return FALSE;
case 2: /* Registry Hive Files */
{
LONG lResult;
HKEY hSubKey;
/* Open the subkey */
lResult = RegOpenKeyEx(hKeyRoot, pszKeyPath, 0, KEY_READ, &hSubKey);
if (lResult == ERROR_SUCCESS)
{
/* Enable the 'backup' privilege, save the hive then disable the privilege */
EnablePrivilege(SE_BACKUP_NAME, NULL, TRUE);
lResult = RegSaveKey(hSubKey, ofn.lpstrFile, NULL);
if (lResult == ERROR_ALREADY_EXISTS)
{
/*
* We are here, that means that we already said "yes" to the confirmation dialog.
* So we absolutely want to replace the hive file.
*/
if (DeleteFile(ofn.lpstrFile))
{
/* Try again */
lResult = RegSaveKey(hSubKey, ofn.lpstrFile, NULL);
}
}
EnablePrivilege(SE_BACKUP_NAME, NULL, FALSE);
if (lResult != ERROR_SUCCESS)
{
/*
* If we are here, it's because RegSaveKey has failed for any reason.
* The problem is that even if it has failed, it has created or
* replaced the exported hive file with a new empty file. We don't
* want to keep this file, so we delete it.
*/
DeleteFile(ofn.lpstrFile);
}
/* Close the subkey */
RegCloseKey(hSubKey);
}
/* Set the return value */
bRet = (lResult == ERROR_SUCCESS);
/* Display error, if any */
if (!bRet) ErrorMessageBox(hWnd, Caption, lResult);
break;
}
case 1: /* Windows Registry Editor Version 5.00 */
case 3: /* REGEDIT4 */
default: /* All files ==> use Windows Registry Editor Version 5.00 */
{
if (!export_registry_key(ofn.lpstrFile, ExportKeyPath,
(ofn.nFilterIndex == 3 ? REG_FORMAT_4
: REG_FORMAT_5)))
{
LPSTR p = GetMultiByteString(ofn.lpstrFile);
fprintf(stderr, "Can't open file \"%s\"\n", p);
HeapFree(GetProcessHeap(), 0, p);
bRet = FALSE;
}
else
{
bRet = TRUE;
}
break;
}
}
}
else
@ -574,7 +683,7 @@ BOOL ExportRegistryFile(HWND hWnd)
CheckCommDlgError(hWnd);
}
return TRUE;
return bRet;
}
BOOL PrintRegistryHive(HWND hWnd, LPTSTR path)

View file

@ -383,6 +383,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Изтриването на всички указани стойности е невъзможно!"
IDS_ERR_RENVAL_CAPTION "Грешка при преиманеуването"
IDS_ERR_RENVAL_TOEMPTY "Неуспешно преименуване на %s. Указаната стойност не е празна. Опитайте отново с друго име."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Нов ключ #%d"
IDS_NEW_VALUE "Нова стойност #%d"
END
@ -406,6 +408,8 @@ BEGIN
IDS_FLT_REGFILE "Вписващ файл"
IDS_FLT_REGFILES "Вписващи (регистърни) файлове (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 вписващи файлове (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Всички файлове (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Nelze odstranit všechny vybrané položky!"
IDS_ERR_RENVAL_CAPTION "Chyba při přejmenování položky"
IDS_ERR_RENVAL_TOEMPTY "Nelze přejmenovat %s. Vybraná položka je prázdná. Vyzkoušejte jiný název."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nový klíč #%d"
IDS_NEW_VALUE "Nová hodnota #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Soubor registru"
IDS_FLT_REGFILES "Soubory registru (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Soubory registru Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Všechny soubory (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Es konnten nicht alle Werte gelöscht werden!"
IDS_ERR_RENVAL_CAPTION "Fehler beim Umbenennen des Wertes"
IDS_ERR_RENVAL_TOEMPTY "Kann %s nicht umbenennen. Der angegebene Name ist leer."
IDS_QUERY_IMPORT_HIVE_CAPTION "Wiederherstellen des Schlüssels bestätigen"
IDS_QUERY_IMPORT_HIVE_MSG "Ein Schlüssel wird über den aktuell ausgewählten Schlüssel wiederhergestellt.\nAlle Werte und Unterschlüssel dieses Schlüssels werden dabei gelöscht.\nMöchten Sie den Vorgang fortsetzen?"
IDS_NEW_KEY "Neuer Schlüssel #%d"
IDS_NEW_VALUE "Neuer Wert #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registrierungsdatei"
IDS_FLT_REGFILES "Registrierungsdateien (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry-Hive-Dateien (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4-Registrierungsdateien (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Alle Dateien (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Δεν ήτνα δυνατή η διαγραφή όλων των τιμών!"
IDS_ERR_RENVAL_CAPTION "Σφάλμα κατά τη Μετονομασία Τιμών"
IDS_ERR_RENVAL_TOEMPTY "Δεν είναι δυνατή η μετονομασία του %s. Το όνομα της συγκεκριμένης τιμής είναι άδειο. Δώστε άλλο όνομα και προσπαθήστε ξανά."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Νέο Κλειδί #%d"
IDS_NEW_VALUE "Νέα Τιμή #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration αρχεία (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration αρχεία (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Όλα τα αρχεία (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -371,6 +371,8 @@ BEGIN
IDS_ERR_DELETEVALUE "¡Incapaz de borrar todos los valores especificados!"
IDS_ERR_RENVAL_CAPTION "Error Renombrando Valor"
IDS_ERR_RENVAL_TOEMPTY "No puede renombrar %s. El nombre de valor especificado esta vacio. Trate otro nombre y comienze otra vez."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nueva Clave #%d"
IDS_NEW_VALUE "Nuevo Valor #%d"
END
@ -394,6 +396,8 @@ BEGIN
IDS_FLT_REGFILE "Fichero de Registro"
IDS_FLT_REGFILES "Fichero de Registro (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Fichero de Registro Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Todos los archivos (*.*)"

View file

@ -364,6 +364,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Impossible de supprimer toutes les valeurs seléctionnées !"
IDS_ERR_RENVAL_CAPTION "Erreur lors de la tentative pour renommer la valeur."
IDS_ERR_RENVAL_TOEMPTY "Impossible de renommer %s. Le nom de valeur spécifié est vide. Essayez à nouveau avec un autre nom."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirmation de la restauration de la clé"
IDS_QUERY_IMPORT_HIVE_MSG "Une clé sera restaurée en remplacement de la clé sélectionnée.\nToutes les valeurs et les sous-clés contenues dans cette clé seront supprimées.\nVoulez-vous continuer l'opération ?"
IDS_NEW_KEY "Nouvelle clé #%d"
IDS_NEW_VALUE "Nouvelle valeur #%d"
END
@ -387,6 +389,8 @@ BEGIN
IDS_FLT_REGFILE "Fichier d'enregistrement"
IDS_FLT_REGFILES "Fichiers d'enregistrement (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Fichiers ruche du Registre (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Fichiers d'enregistrement Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Tous les fichiers (*.*)"

View file

@ -369,6 +369,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -392,6 +394,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -367,6 +367,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Tidak bisa menghapus semua nilai yang ditetapkan!"
IDS_ERR_RENVAL_CAPTION "Kesalahan Mengganti nama Nilai"
IDS_ERR_RENVAL_TOEMPTY "Tidak bisa mengganti nama %s. Nama nilai yang ditetapkan kosong. Coba nama lain dan coba lagi."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Kunci Baru #%d"
IDS_NEW_VALUE "Nilai Baru #%d"
END
@ -390,6 +392,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "File Registrasi (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "File Registrasi Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Semua File (*.*)"

View file

@ -370,6 +370,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Impossibile cancellare tutti i valori indicati!"
IDS_ERR_RENVAL_CAPTION "Errore nel rinominare il valore"
IDS_ERR_RENVAL_TOEMPTY "Impossibile rinominare %s. Il nome indicato è vuoto. Riprovate con un altro nome."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nuova chiave #%d"
IDS_NEW_VALUE "Nuovo valore #%d"
END
@ -393,6 +395,8 @@ BEGIN
IDS_FLT_REGFILE "File di Registrazione"
IDS_FLT_REGFILES "File di Registrazione (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "File di Registrazione Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Tutti i file (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "指定された値のすべてを削除できません!"
IDS_ERR_RENVAL_CAPTION "値の名前を変更するときにエラーが発生しました。"
IDS_ERR_RENVAL_TOEMPTY "%s の名前を変更できません。指定された値の名前には文字が含まれていません。別の名前でやり直してください。"
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "新しいキー #%d"
IDS_NEW_VALUE "新しい値 #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "登録ファイル"
IDS_FLT_REGFILES "登録ファイル (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 登録ファイル (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "すべてのファイル (*.*)"

View file

@ -353,6 +353,8 @@ BEGIN
IDS_ERR_DELETEVALUE "모든 선택된 값을 제거할 수 없습니다!"
IDS_ERR_RENVAL_CAPTION "값 이름 바꾸기 오류"
IDS_ERR_RENVAL_TOEMPTY "%s의 이름을 바꿀 수 없습니다. 값의 이름이 없습니다. 다른 이름으로 해 보세요."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "새 키 #%d"
IDS_NEW_VALUE "새 값 #%d"
END
@ -376,6 +378,8 @@ BEGIN
IDS_FLT_REGFILE "레지스트리 파일"
IDS_FLT_REGFILES "레지스트리 파일들 (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 레지스트리 파일 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "모든 파일 (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Kunne ikke slette alle angitte verdier!"
IDS_ERR_RENVAL_CAPTION "Feil ved endring av navn"
IDS_ERR_RENVAL_TOEMPTY "Kan ikke gi nytt navn til %s. Den angitte verdien er tom. Prøv et annet navn, og forsøk på nytt."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Ny nøkkel #%d"
IDS_NEW_VALUE "Ny verdi #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registerfiler (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registerfiler (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Alle Filer (*.*)"

View file

@ -375,6 +375,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Nie można usunąć wszystkich podanych wartości!"
IDS_ERR_RENVAL_CAPTION "Błąd przy zmianie wartości"
IDS_ERR_RENVAL_TOEMPTY "Nie można zmienić nazwy %s. Określona nazwa klucza jest pusta. Wpisz inną nazwę i spróbuj ponownie."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nowy klucz #%d"
IDS_NEW_VALUE "Nowa wartość #%d"
END
@ -398,6 +400,8 @@ BEGIN
IDS_FLT_REGFILE "Plik rejestru"
IDS_FLT_REGFILES "Pliki rejestru (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Pliki rejestru Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Wszystkie pliki (*.*)"

View file

@ -369,6 +369,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Não foi possível excluir todos os valores especificados"
IDS_ERR_RENVAL_CAPTION "Erro renomeando valor"
IDS_ERR_RENVAL_TOEMPTY "Não pode renomear %s. O nome do valor especificado está vazio. Tente novamente com outro nome."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nova chave #%d"
IDS_NEW_VALUE "Novo valor #%d"
END
@ -392,6 +394,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Arquivos do Registro (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Arquivos do Registro Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Todos os arquivos (*.*)"

View file

@ -370,6 +370,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -393,6 +395,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -366,6 +366,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Nu s-a reușit ștergerea tuturor valorilor specificate!"
IDS_ERR_RENVAL_CAPTION "Eroare la redenumirea de valori"
IDS_ERR_RENVAL_TOEMPTY "Nu se poate redenumi %s. Numele valorii specificate este gol. Încercați introducerea unui alt nume."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Cheia nouă #%d"
IDS_NEW_VALUE "Valoarea nouă #%d"
END
@ -389,6 +391,8 @@ BEGIN
IDS_FLT_REGFILE "Fișier registru"
IDS_FLT_REGFILES "Fișiere registru (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Fișiere registru Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Orice fișier (*.*)"

View file

@ -365,6 +365,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Невозможно удалить все указанные значения!"
IDS_ERR_RENVAL_CAPTION "Ошибка переименования значения"
IDS_ERR_RENVAL_TOEMPTY "Невозможно переименовать %s. Указанное значение не пустое. Введите другое значение и повторите попытку."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Новый ключ #%d"
IDS_NEW_VALUE "Новое значение #%d"
END
@ -388,6 +390,8 @@ BEGIN
IDS_FLT_REGFILE "Файл реестра"
IDS_FLT_REGFILES "Файлы реестра (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Файлы реестра Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Все файлы (*.*)"

View file

@ -353,6 +353,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nový kľúč #%d"
IDS_NEW_VALUE "Nová hodnota #%d"
END
@ -376,6 +378,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Všetky súbory (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Det gick inte att ta bort alla specificerade värden!"
IDS_ERR_RENVAL_CAPTION "Fel vid namnändring av värde"
IDS_ERR_RENVAL_TOEMPTY "Kunde inte byta namn på %s. Det specificerade värdenamnet är tomt. Ange ett annat namn och försök igen."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Ny Nyckel #%d"
IDS_NEW_VALUE "Nytt Värde #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registerfil"
IDS_FLT_REGFILES "Registerfiler (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4-Registerfiler (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Alla filer (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"

View file

@ -369,6 +369,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Неможливо видалити усі задані значення!"
IDS_ERR_RENVAL_CAPTION "Помилка при перейменуванні значення"
IDS_ERR_RENVAL_TOEMPTY "Не можу перейменувати %s. Ім'я заданого значення порожнє. Спробуйте інше ім'я та повторіть спробу."
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Новий розділ #%d"
IDS_NEW_VALUE "Нове значення #%d"
END
@ -392,6 +394,8 @@ BEGIN
IDS_FLT_REGFILE "Файл реєстру"
IDS_FLT_REGFILES "Файли реєстру (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Файли реєстру Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Усі файли (*.*)"

View file

@ -368,6 +368,8 @@ BEGIN
IDS_ERR_DELETEVALUE "无法删除所有指定的值!"
IDS_ERR_RENVAL_CAPTION "重命名值时产生错误"
IDS_ERR_RENVAL_TOEMPTY "注册表编辑器无法重命名 %s。指定的值名为空。请键入其他名称再试一次。"
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "新项 #%d"
IDS_NEW_VALUE "新值 #%d"
END
@ -391,6 +393,8 @@ BEGIN
IDS_FLT_REGFILE "注册文件"
IDS_FLT_REGFILES "注册文件 (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 注册文件 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "所有文件 (*.*)"

View file

@ -369,6 +369,8 @@ BEGIN
IDS_ERR_DELETEVALUE "無法刪除所有指定的值!"
IDS_ERR_RENVAL_CAPTION "重新命名值時產生錯誤"
IDS_ERR_RENVAL_TOEMPTY "登錄編輯器無法重新命名 %s。指定的值為空。請輸入其他名稱再試一次。"
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "新機碼 #%d"
IDS_NEW_VALUE "新值 #%d"
END
@ -392,6 +394,8 @@ BEGIN
IDS_FLT_REGFILE "登錄文件"
IDS_FLT_REGFILES "登錄文件 (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 登錄文件 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "所有文件 (*.*)"

View file

@ -136,12 +136,14 @@
#define IDS_ERR_DELETEVALUE 32855
#define IDS_ERR_RENVAL_CAPTION 32856
#define IDS_ERR_RENVAL_TOEMPTY 32857
#define IDS_BAD_KEY 32858
#define IDS_LOAD_HIVE 32859
#define IDS_UNLOAD_HIVE 32860
#define IDS_QUERY_IMPORT_HIVE_CAPTION 32858
#define IDS_QUERY_IMPORT_HIVE_MSG 32859
#define IDS_BAD_KEY 32860
#define IDS_LOAD_HIVE 32861
#define IDS_UNLOAD_HIVE 32862
#define ID_EDIT_NEW_MULTISTRINGVALUE 32861
#define ID_EDIT_NEW_EXPANDABLESTRINGVALUE 32862
#define ID_EDIT_NEW_MULTISTRINGVALUE 32863
#define ID_EDIT_NEW_EXPANDABLESTRINGVALUE 32864
#define ID_SWITCH_PANELS 32871
#define ID_EDIT_PERMISSIONS 32872
@ -158,10 +160,12 @@
#define IDS_FLT_REGFILE 31000
#define IDS_FLT_REGFILES 31001
#define IDS_FLT_REGFILES_FLT 31002
#define IDS_FLT_REGEDIT4 31003
#define IDS_FLT_REGEDIT4_FLT 31004
#define IDS_FLT_ALLFILES 31005
#define IDS_FLT_ALLFILES_FLT 31006
#define IDS_FLT_HIVFILES 31003
#define IDS_FLT_HIVFILES_FLT 31004
#define IDS_FLT_REGEDIT4 31005
#define IDS_FLT_REGEDIT4_FLT 31006
#define IDS_FLT_ALLFILES 31007
#define IDS_FLT_ALLFILES_FLT 31008
#define IDS_ACCESS_FULLCONTROL 31101
#define IDS_ACCESS_READ 31102

View file

@ -1375,6 +1375,7 @@ typedef enum {
#define REG_WHOLE_HIVE_VOLATILE 1
#define REG_REFRESH_HIVE 2
#define REG_NO_LAZY_FLUSH 4
#define REG_FORCE_RESTORE 8
#define REG_OPTION_RESERVED 0
#define REG_OPTION_NON_VOLATILE 0
#define REG_OPTION_VOLATILE 1