Example #1
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                SystemDriveLetters = DriveLetter.GetReservedFromRegistry(AlwaysAllowRemoval).ToList();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Es ist ein Fehler beim Laden der Laufwerksbuchstaben aufgetreten\n\n" + ex.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                Close();
            }

            DriveLetterList.ItemsSource = SystemDriveLetters;
        }
Example #2
0
        /// <summary>
        /// Löscht den übergebenen RegistryKey aus der Registry
        /// </summary>
        /// <param name="Letter">Zu löschender Laufwerksbuchstabe</param>
        /// <param name="force">Wenn true, wird er entfernt, auch wenn er gerade in Benutzung ist</param>
        /// <exception cref="InvalidOperationException">Wenn der Laufwerksbuchstabe gearde von einem Gerät verwendet wird</exception>
        public static void DeleteFromRegistry(DriveLetter Letter, bool force = false)
        {
            if (force == false)
            {
                if (DriveLetterIsCurrentlyMounted(Letter.Letter))
                {
                    throw new InvalidOperationException($"Der Laufwerksbuchstabe kann nicht aus der Registry entfernt werden, weil er gerade von einem Gerät verwendet wird");
                }
            }

            RegistryKey MountedDevicesKey = GetMountedDevicesRegistryKey(true);

            MountedDevicesKey.DeleteValue(Letter.ExpectedRegistryValueName);
        }
Example #3
0
 /// <summary>
 /// Gibt <see cref="DriveInfo"/> für den übergebnen Laufwerksbuchstaben zurück
 /// </summary>
 /// <param name="Letter">DriveLetter Information</param>
 /// <returns></returns>
 /// <exception cref="IOException">Gerät mit dem übergebnenen Laufwerksbuchstaben ist nicht gemounted</exception>
 public static DriveInfo GetDriveInfoForMountedDevice(DriveLetter Letter)
 {
     return(GetDriveInfoForMountedDevice(Letter.Letter));
 }
Example #4
0
 /// <summary>
 /// Prüft ob der Laufwerksbuchstabe ein Systemkritischer ist
 /// </summary>
 /// <param name="Letter">Zu prüfender Buchstabe</param>
 /// <returns></returns>
 public static bool IsProtectedLetter(DriveLetter Letter)
 {
     return(IsProtectedLetter(Letter.Letter));
 }