// ------------------------------------------------------------------------- // On importe le subtree sélectionné // ------------------------------------------------------------------------- private void Bt_SelectHive_Import(object sender, RoutedEventArgs e) { // Ferme le popup "Select Registry" Pu_SelectHive.IsOpen = false; // On affiche le Popup Sablier Pu_Working.IsOpen = true; // On renseigne l'InfoChip string HivePath = @"HKLM\" + Tb_HivePath.Text; CurrentRegistry = new RecentRegistry(HivePath); Tree_InfoChip.Content = CurrentRegistry.Name; Tree_InfoChipIcon.Kind = CurrentRegistry.Icon; // Enleve le message "drop your file" this.ReInitDisplay(); // On remplit le RegistryTree à partir du subtree de la Registry (=Hive) AsynchronousHiveLoading(CurrentRegistry.Name); //// On importe la Hive //Parser2.ParseHive(Tb_HivePath.Text); // peut être long (25 secs) //Parser2.BuildList(); // On enlève le Popup Sablier Pu_Working.IsOpen = false; // Ajout à la liste des Recent Regs RecentsRegs.Add(HivePath); this.SaveRecentRegs(); }
// ------------------------------------------------------------------------- // On clique sur une RecentChip: on charge le fichier ou la ruche (Hive) // ------------------------------------------------------------------------- private void Bt_RecentChip_Click(object sender, RoutedEventArgs e) { // On recupère la Chip qui a été cliquée MaterialDesignThemes.Wpf.Chip SenderChip = sender as MaterialDesignThemes.Wpf.Chip; // On enregistre son nom string RecentRegToLoadName = SenderChip.Content.ToString(); CurrentRegistry = new RecentRegistry(RecentRegToLoadName); // On ferme le popup "recent chip" Pu_Recent.IsOpen = false; // On affiche le Popup Sablier Pu_Working.IsOpen = true; // On renseigne l'InfoChip Tree_InfoChip.Content = CurrentRegistry.Name; Tree_InfoChipIcon.Kind = CurrentRegistry.Icon; // Si le RecentReg est un fichier if (CurrentRegistry.GetGenre() == RecentRegistry.Genre.file) { // On enleve le message "drop your file" this.ReInitDisplay(); // On remplit le RegistryTree à partir du fichier REG Parser1.ParseFile(CurrentRegistry.Name); Parser1.BuildList(); // On enlève le Popup Sablier Pu_Working.IsOpen = false; } // Si le RecentReg est un subtree de la Registry else if (CurrentRegistry.GetGenre() == RecentRegistry.Genre.hive) { // On enleve le message "drop your file" this.ReInitDisplay(); // On remplit le RegistryTree à partir du subtree de Registre AsynchronousHiveLoading(CurrentRegistry.Name); // Parser2.ParseHive(CurrentRegistry.Name); // Parser2.BuildList(); } // Autres cas... else { // On enlève le Popup Sablier Pu_Working.IsOpen = false; // Gestion de l'affichage this.ReInitDisplay(); } }
// ------------------------------------------------------------------------- // Drop d'un (ou plusieurs) fichier(s) dans une TreeView // ------------------------------------------------------------------------- private void Tree1_drop(object sender, DragEventArgs e) { string[] droppedFiles = null; if (e.Data.GetDataPresent(DataFormats.FileDrop)) { droppedFiles = e.Data.GetData(DataFormats.FileDrop, true) as string[]; } if ((droppedFiles == null) || (!droppedFiles.Any())) { return; } // Reinitit de l'IHM (on efface le Tree actuel) this.ReInitDisplay(showLengthstats: true); // S'il y a un (ou plus) fichier(s) droppé(s), on ouvre le premier dans la TreeView if (droppedFiles.Length > 0) { string fileName = droppedFiles[0]; CurrentRegistry = new RecentRegistry(fileName); // On renseigne l'InfoChip Tree_InfoChip.Content = CurrentRegistry.Name; Tree_InfoChipIcon.Kind = CurrentRegistry.Icon; // On remplit le RegistryTree à partir du fichier REG Parser1.ParseFile(CurrentRegistry.Name); Parser1.BuildList(); // Ajout à la liste des Recent Regs RecentsRegs.Add(CurrentRegistry.Name); this.SaveRecentRegs(); } // on ferme le popup Pu_Recent.IsOpen = false; }