/// <summary> /// Restore imageres from backup /// </summary> public static void Restore() { if (SystemIsWindowsVista7) { if (File.Exists(ImageresBak)) { if (FileSystemAdmin.IsAdmin()) { FileSystemAdmin.GrantAll(System32); FileSystemAdmin.GrantAll(ImageresBak); FileSystemAdmin.GrantAll(Imageres); try { //Move in-use DLL so that we can restore the original one File.Delete(ImageresOld); File.Move(Imageres, ImageresOld); } catch (UnauthorizedAccessException) { } File.Delete(Imageres); File.Move(ImageresBak, Imageres); } else { throw new UnauthorizedAccessException(Translations.Get("startup_patch_not_admin")); } } } else { throw new InvalidOperationException(Translations.Get("startup_patch_not_windows7")); } }
/// <summary> /// Unlock Imageres and perform a backup /// </summary> public static void Backup() { if (SystemIsWindowsVista7) { if (File.Exists(Imageres)) { if (FileSystemAdmin.IsAdmin()) { FileSystemAdmin.GrantAll(System32); FileSystemAdmin.GrantAll(Imageres); if (File.Exists(ImageresBak)) { FileSystemAdmin.GrantAll(ImageresBak); } else { File.Move(Imageres, ImageresBak); File.Copy(ImageresBak, Imageres); } } else { throw new UnauthorizedAccessException(Translations.Get("startup_patch_not_admin")); } } else { throw new FileNotFoundException(Translations.Get("startup_patch_no_imageres_dll")); } } else { throw new InvalidOperationException(Translations.Get("startup_patch_not_windows7")); } }