Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 771 fois - Téléchargée 17 fois
Imports Microsoft.Win32 Public Class Form1 Private Sub vide() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" ListBox2.Items.Clear() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Key As RegistryKey Dim val As String() Dim i As Integer Key = Registry.ClassesRoot 'place l'indexe du parcourt du registre sur la clef HK_classes_root val = Key.GetSubKeyNames() ' rempli le tableau de chaines avec les valeur des sous-clefs For i = 0 To val.Count - 1 'If Microsoft.VisualBasic.Left(val(i), 1) = "." Then ListBox1.Items.Add(Strings.Right(val(i), Len(i) - 1)) ' essai pour enlever le. devant les noms d'extension If Microsoft.VisualBasic.Left(val(i), 1) = "." Then ListBox1.Items.Add(val(i)) 'met dans la liste les éléments commençant par "." Next i Key.Close() Button1.Text = ListBox1.Items.Count & " extensions .xyz" End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' mises de quelques couleurs via code GroupBox2.BackColor = Color.FromArgb(200, 200, 250) TextBox1.BackColor = Color.FromArgb(200, 240, 200) TextBox2.BackColor = Color.FromArgb(200, 240, 200) TextBox3.BackColor = Color.FromArgb(200, 240, 200) Button1.ForeColor = Color.FromArgb(100, 140, 100) TextBox4.BackColor = Color.FromArgb(200, 200, 250) TextBox5.BackColor = Color.FromArgb(200, 200, 250) GroupBox1.BackColor = Color.FromArgb(230, 170, 170) Button3.BackColor = System.Drawing.SystemColors.Control Button2.BackColor = System.Drawing.SystemColors.Control End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged TextBox1.Text = ListBox1.SelectedItem Dim Key, key2 As RegistryKey Dim val As String() Dim i As Integer ' nettoyage de l'affichage vide() ' va chercher la sous clef correspondante à l'élément cliqué Key = Registry.ClassesRoot.OpenSubKey(ListBox1.SelectedItem) If Not Key.GetValue("") = "" Then TextBox1.Text = Key.GetValue("") TextBox6.Text = TextBox1.Text ' la valeur "" , c'est la valeur par défaut ' ex : .ico - icone ' .ico, c'est dans la liste ' icone, la valeur par défaut, comme c'est multilangue, icone est aussi une clef ' cette clef a de nouveau une valeur par défaut qui est le nom 'icone' traduit dans la langue ' puis uune sous clef shell ' dans shell, une liste de sous clef pour différentes façons d'ouvrir par clic droit ' à chaque façon d'ouvrir, une sous clef open avec une ligne de commande à lancer Try ' si la sous clef n'est pas vide, on va chercher la valeur par défaut pointée par cette clef key2 = Registry.ClassesRoot.OpenSubKey(Registry.ClassesRoot.OpenSubKey(ListBox1.SelectedItem).GetValue("")) TextBox2.Text = key2.GetValue("") TextBox7.Text = TextBox2.Text 'ensuite on regard son nom traduit key2 = Registry.ClassesRoot.OpenSubKey(Key.GetValue("")) ' la valeur par défaut du clic droit TextBox3.Text = key2.OpenSubKey("shell").GetValue("") key2 = Registry.ClassesRoot.OpenSubKey(Key.GetValue("") & "\shell") ' la liste des actions par clic droit val = key2.GetSubKeyNames() 'on passe le tableau de strings dans la liste box For i = 0 To val.Count - 1 ListBox2.Items.Add(val(i)) Next i Key.Close() Catch End Try Else ' en cas d'extension sans association par clic droit TextBox1.Text = "association inexistante" TextBox2.Text = "n/a" End If End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click End Sub Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged Dim key2 As Object TextBox4.Text = "" TextBox5.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" TextBox10.Text = ListBox2.SelectedItem Try key2 = Registry.ClassesRoot.OpenSubKey(TextBox1.Text & "\shell\" & ListBox2.SelectedItem) TextBox4.Text = key2.GetValue("") TextBox8.Text = TextBox4.Text key2 = Registry.ClassesRoot.OpenSubKey(TextBox1.Text & "\shell\" & ListBox2.SelectedItem & "\command") TextBox5.Text = key2.GetValue("") TextBox9.Text = TextBox5.Text Catch ' l'ajout d'un try/catch permet d'éviter les plantages avec les clefs inexistantes End Try End Sub Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' si les champs principaux sont vide, on ne fait rien If TextBox6.Text = "" Or TextBox9.Text = "" Or TextBox10.Text = "" Then Exit Sub Dim confir = MsgBox("Anulation impossible, êtes-vous sûre ?", MsgBoxStyle.YesNoCancel, "Confirmation") If confir = MsgBoxResult.Yes Then Dim Key As RegistryKey Try Key = Registry.ClassesRoot.OpenSubKey(ListBox1.SelectedItem, True) ' true permer d'ouvrir la clef en écriture Key.SetValue("", TextBox6.Text) Key.Close() Key = Registry.ClassesRoot.CreateSubKey(TextBox6.Text) Key.Close() Key = Registry.ClassesRoot.OpenSubKey(TextBox6.Text, True) Key.SetValue("", TextBox7.Text) Key.CreateSubKey("shell") Key.Close() Key = Registry.ClassesRoot.OpenSubKey(TextBox6.Text & "\shell", True) Key.CreateSubKey(TextBox10.Text) If CheckBox1.Checked Then Key.SetValue("", TextBox10.Text) End If Key.Close() Key = Registry.ClassesRoot.OpenSubKey(TextBox6.Text & "\shell\" & TextBox10.Text, True) Key.CreateSubKey("command") Key.Close() Key = Registry.ClassesRoot.OpenSubKey(TextBox6.Text & "\shell\" & TextBox10.Text & "\command", True) Key.SetValue("", TextBox9.Text) Key.Close() Catch ' l'ajout d'un try/catch permet d'éviter les plantages avec les clefs inexistantes End Try End If End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click bx.Title = "choisissez un fichier" bx.Filter = "Tous | *.*" bx.FilterIndex = 1 bx.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) bx.ShowDialog() TextBox9.Text = bx.FileName & " " & """" & "%1" & """" End Sub Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk End Sub End Class
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.