18-09-17, 12:26 PM
(آخر تعديل لهذه المشاركة : 18-09-17, 12:43 PM {2} بواسطة silverlight.)
الفكرة تنحصر في قراءة الريجستري و استرجاع البيانات منه علي هيئة مصفوفة للكلاس التالي
الدالة التالية تقرأ الريجستري ومنها نحصل علي جميع البرامج التي تم تنصيبها علي جهاز الكمبيوتر
طريقة استخدام الكود
طريقة أخري
لكي تحصل علي أسماء البرامج فقط دون الحاجة للكلاس
يمكنكم استخدام الدالة التالية فقط
الأكواد أعلاه هي إجابة للسؤال الموجود في اللينك التالي
التحقق من تنصيب برامج معينة علي جهاز الكمبيوتر
PHP كود :
Public Class InstalledAssembly
Public Property Name() As String
Public Property Location() As String
Public Property Icon() As String
End Class
الدالة التالية تقرأ الريجستري ومنها نحصل علي جميع البرامج التي تم تنصيبها علي جهاز الكمبيوتر
PHP كود :
Private Function GetAllInstallAssemblies() As List(Of InstalledAssembly)
Dim result As List(Of InstalledAssembly) = New List(Of InstalledAssembly)()
Dim regKeyString As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
Using key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(regKeyString)
If key IsNot Nothing Then
Dim names As String() = key.GetSubKeyNames()
Dim i As Integer = 0
While i < names.Length
Dim currentName As String = names(i)
Using subKey As Microsoft.Win32.RegistryKey = key.OpenSubKey(currentName)
Try
Dim currentInstalledAssembly As InstalledAssembly = New InstalledAssembly
If subKey IsNot Nothing AndAlso subKey.GetValue("DisplayName") IsNot Nothing Then
currentInstalledAssembly.Name = subKey.GetValue("DisplayName").ToString()
If subKey.GetValue("DisplayIcon") IsNot Nothing Then
currentInstalledAssembly.Icon = subKey.GetValue("DisplayIcon").ToString()
Else
currentInstalledAssembly.Icon = ""
End If
If subKey.GetValue("InstallLocation") IsNot Nothing Then
currentInstalledAssembly.Location = subKey.GetValue("InstallLocation").ToString()
Else
currentInstalledAssembly.Location = ""
End If
If Not result.Contains(currentInstalledAssembly) Then
result.Add(currentInstalledAssembly)
End If
End If
Catch ex As Exception
End Try
End Using
i += 1
End While
End If
End Using
Return result
End Function
طريقة استخدام الكود
PHP كود :
For Each ia As InstalledAssembly In GetAllInstallAssemblies()
ListBox1.Items.Add(ia.Name)
Next
طريقة أخري
لكي تحصل علي أسماء البرامج فقط دون الحاجة للكلاس
يمكنكم استخدام الدالة التالية فقط
PHP كود :
Private Function GetInstalledApplicationNames() As List(Of String)
Dim result As List(Of String) = New List(Of String)()
Dim regKeyString As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
Using key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(regKeyString)
If key IsNot Nothing Then
Dim names As String() = key.GetSubKeyNames()
Dim i As Integer = 0
While i < names.Length
Dim currentName As String = names(i)
Using subKey As Microsoft.Win32.RegistryKey = key.OpenSubKey(currentName)
Try
If subKey IsNot Nothing AndAlso subKey.GetValue("DisplayName") IsNot Nothing Then
Dim installedapplication As String = subKey.GetValue("DisplayName").ToString()
If Not result.Contains(installedapplication) Then
result.Add(installedapplication)
End If
End If
Catch ex As Exception
End Try
End Using
i += 1
End While
End If
End Using
Return result
End Function
الأكواد أعلاه هي إجابة للسؤال الموجود في اللينك التالي
التحقق من تنصيب برامج معينة علي جهاز الكمبيوتر
Retired