рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди

рд╡рд┐рднрд┐рдиреНрди рд╕рдмрдиреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдПрдХ рдмреНрд░рдВрдЪрдпреБрдХреНрдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рдЧреНрд░рд╛рдл рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╣реЛрддреЗ рд╣реИрдВред



рдЫрд╡рд┐



рдпрд╣ рдЬреНрдЮрд╛рди рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ?



QuickGraph


рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдореБрдлреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ - рдХреНрд╡рд┐рдХрдЧреНрд░рд╛рдлред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдирд╛рдо рд╕реНрдерд╛рди рдЖрдпрд╛рдд рдХрд░реЗрдВ:

Imports QuickGraph







рдПрдХ рдЧреНрд░рд╛рдл рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:

Dim graph As New BidirectionalGraph(Of Object, IEdge(Of Object))







рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдХрдВрдкреНрдпреВрдЯрд░ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рдл рдХреЗ рдиреЛрдб рд╣реИрдВред рдиреЛрдб рдЬреЛрдбрд╝реЗрдВ:

graph.AddVertex("")







рд╣рдо рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреА рд╕реВрдЪреА рд▓реЗрдВрдЧреЗ:

Dim de As New DirectoryServices.DirectoryEntry

Dim search As New DirectorySearcher(de)

search.Filter = "(objectCategory=computer)"

Dim results As SearchResultCollection = search.FindAll()

For i As Integer = 0 To results.Count - 1

Dim de2 As DirectoryEntry = results(i).GetDirectoryEntry

Dim ComputerName As String = CType(de2.InvokeGet("cn"), String)

graph.AddVertex(ComputerName)

Next








рдорд╣рд╛рди, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЧреНрд░рд╛рдл рдХреА рддрд░рд╣ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИред рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░рд╛ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╡реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ - рд░рд╛рдЙрдЯрд░ (рд░рд╛рдЙрдЯрд░)ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рджреГрд╢реНрдп рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред



рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реАрдзреЗ рдПрдХ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрддрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдмреЛрд░реНрдб рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдЧреЗрдЯрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред



WMI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдирд╛ ...

Private Function GetGateway(ByVal ComputerName As String) As String

Dim s As String = String.Empty

Dim query As ManagementObjectSearcher

Dim queryCollection As ManagementObjectCollection

Dim msc As ManagementScope = New ManagementScope("\\" + ComputerName + "\root\cimv2")

query = New ManagementObjectSearcher(msc, New SelectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"))

queryCollection = query.Get()

For Each mObject As ManagementObject In queryCollection

Try

If mObject("DefaultIPGateway").ToString <> "" Then

s = mObject("DefaultIPGateway")(0).ToString

End If

Catch

End Try

Next

Return s

End Function








... рд╕рднреА рдЧреЗрдЯрд╡реЗ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд╛рдлрд╝, рд╕рд╛рде рд╣реА рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

graph.AddVertex("")







рдиреЛрдбреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЗ рд╕рд╛рде, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдЧреЗрдЯрд╡реЗ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ:

graph.AddEdge(New Edge(Of Object)("", ""))







рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реИред



рдЧреНрд░рд╛рдл #


рдХреНрд╡рд┐рдХрдЧреНрд░рд╛рдл рдЧреНрд░рд╛рдлрд╝ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП MSAGL, GLEE рдФрд░ рдЧреНрд░рд╛рдлрд╡рд┐рдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЧреНрд░рд╛рдл # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ WPF рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред



рд╣рдо рдЧреНрд░рд╛рдлрд▓реЗрдпреЙрдЯ рдлреЙрд░реНрдо рдкрд░ рджрд┐рдП рдЧрдП рдврд╛рдВрдЪреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд░реЗрдЦрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

GraphLayout.Graph = graph







рдФрд░ рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЧреНрд░рд╛рдл # рдмрд╛рдХреА рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗрдЧрд╛ред



рдЫрд╡рд┐



рд╕рдВрджрд░реНрдн:

QuickGraph

рдЧреНрд░рд╛рдл #



All Articles