Imports Microsoft.Win32
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim subkey As String = "Environment"
Dim regkey As RegistryKey = Registry.CurrentUser.OpenSubKey(subkey, True)
Try
If Not regkey Is Nothing Then
MessageBox.Show(regkey.GetValue("PATH").ToString())
Else
MessageBox.Show("レジストリが正しく開かれていません")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
If Not regkey Is Nothing Then
regkey.Close()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim subkey As String = "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Dim regkey As RegistryKey = Registry.LocalMachine.OpenSubKey(subkey, True)
Try
If Not regkey Is Nothing Then
MessageBox.Show(regkey.GetValue("PATH").ToString())
Else
MessageBox.Show("レジストリが正しく開かれていません")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
If Not regkey Is Nothing Then
regkey.Close()
End If
End Sub
End Class
Private Sub SortEnum(ByVal Path As String)
' 区切り文字定義
Dim delimStr As String = ";"
Dim delimiter As Char() = delimStr.ToCharArray()
' 配列に分割
Dim split As String() = Path.Split(delimiter)
' ソート
Array.Sort(split, split.GetLowerBound(0), split.Length)
Dim str As String = ""
For Each value As String In split
str &= value & ControlChars.CrLf
Next
MessageBox.Show(str)
End Sub
Private Sub SortEnum(ByVal Path As String)
' 区切り文字定義
Dim delimStr As String = ";"
Dim delimiter As Char() = delimStr.ToCharArray()
' 配列に分割
Dim split As String() = Path.Split(delimiter)
' ソートはしない( パスの順序に意味がある )
' 表示のみならばソートしても良い
' Array.Sort(split, split.GetLowerBound(0), split.Length)
LoadGrid(split)
End Sub
Private Sub LoadGrid(ByRef data As String())
Me.LboxGrid1.Clear()
' 自動サイズ変更モード
Me.LboxGrid1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
For Each value As String In data
Me.LboxGrid1.AddRow()
Me.LboxGrid1.SetColumnText("PATH", value)
Next
' 自動サイズ変更の列をユーザが変更できるようにする
Me.LboxGrid1.AllowResizeColumn(True)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.LboxGrid1.AddColumn("PATH", "検索パス")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.LboxGrid1.AddColumn("PATH", "検索パス")
Me.LboxGrid1.ReadOnly = False
Me.LboxGrid1.EditMode = DataGridViewEditMode.EditOnF2
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click
Dim str As String = ""
Dim fld As String = ""
Me.LboxGrid1.SetCurrentRow()
Do While (Me.LboxGrid1.FindNextRow())
fld = Me.LboxGrid1.GetColumnText("PATH")
If fld = "" Then
Continue Do
Else
fld = fld.Trim()
If fld = "" Then
Continue Do
End If
End If
If str <> "" Then
str &= ";"
End If
str &= fld
Loop
MessageBox.Show(str)
If mode = 1 Then
Dim subkey As String = "Environment"
Dim regkey As RegistryKey = Registry.CurrentUser.OpenSubKey(subkey, True)
regkey.SetValue("PATH", str)
SortEnum(regkey.GetValue("PATH").ToString())
regkey.Close()
End If
If mode = 2 Then
Dim subkey As String = "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Dim regkey As RegistryKey = Registry.LocalMachine.OpenSubKey(subkey, True)
regkey.SetValue("PATH", str)
SortEnum(regkey.GetValue("PATH").ToString())
regkey.Close()
End If
End Sub
拡張子:
Private mode As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim subkey As String = "Environment"
Dim regkey As RegistryKey = Registry.CurrentUser.OpenSubKey(subkey, True)
Try
If Not regkey Is Nothing Then
mode = 1
SortEnum(regkey.GetValue("PATH").ToString())
Else
MessageBox.Show("レジストリが正しく開かれていません")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
If Not regkey Is Nothing Then
regkey.Close()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim subkey As String = "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Dim regkey As RegistryKey = Registry.LocalMachine.OpenSubKey(subkey, True)
Try
If Not regkey Is Nothing Then
mode = 2
SortEnum(regkey.GetValue("PATH").ToString())
Else
MessageBox.Show("レジストリが正しく開かれていません")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
If Not regkey Is Nothing Then
regkey.Close()
End If
End Sub