private void BtnChangeDriveLockState_Click(object sender, RoutedEventArgs e) { var driveNumber = _driveList[cBoxDriveList.SelectedIndex].Number; var driveName = _driveList[cBoxDriveList.SelectedIndex].Name; if (_currentLocked) { var index = cBoxDriveList.SelectedIndex; var window = new UnlockWindow(OnUnlockWindowClose, driveNumber, driveName); window.ShowDialog(); } else { var bl = new BitLockerExecute(driveNumber[0].ToString()); if (bl.Lock()) { new AlertWindow($"驱动器({driveNumber})已加锁").Show(); InitDriveList(cBoxDriveList.SelectedIndex); } else { new AlertWindow($"当前驱动器({driveNumber})未使用Bitlocker加密").Show(); } } }
private void Submit() { var recoveryFileStream = new RecoveryFileStream(); if (string.IsNullOrEmpty(_driveName))//判断当前选中磁盘名 { var xml = new XMLOperation(); _driveName = xml.GetNodeValue("/root/user/currentdrivename"); } var byteFile = recoveryFileStream.Read($@".\Data\bla_{_driveName}.rp"); if (0 == byteFile.Length) { btnErrorHint.Content = "未找到用户密钥文件"; btnErrorHint.Visibility = Visibility.Visible; ClearSimplePassword(); return; } var aes = new AESUtil(); var afterAESStr = aes.AesDecrypt(byteFile, _key); if (string.IsNullOrEmpty(afterAESStr)) { btnErrorHint.Content = "密钥文件解析失败"; btnErrorHint.Visibility = Visibility.Visible; ClearSimplePassword(); return; } var bl = new BitLockerExecute(_driveNumber[0].ToString()); if (!bl.Unlock(afterAESStr)) { btnErrorHint.Content = "加载了非此驱动器的密钥文件"; btnErrorHint.Visibility = Visibility.Visible; ClearSimplePassword(); return; } _onWindowCloseCallback(); Close(); }