02-02-17, 06:04 PM
يا مسعد,
الافضل هو فحص مسجل النظام عن البرامج التي تريدها و كون البرامج التي تريد فحصها بعدد غير معلوم .
انا اقترح عليك طريقة ان تقوم بالفحص في العقدة التالية
HKEY-LOCAL_MACHINE_SOFTWARE_MICROSOFT_WINDOWS_CurrentVersion_Unistall
لان غالبية البرامج يكون لديها عملية Unistall في هذه العقدة او المجلد يمكنك البحث عما تريد في مكان واحد
بكل الاحوال حتى لا اطيل عليك هذه دالة بثلاث طرق اختر ما يناسبك منها
و الافضل ان تكون البرامج التي تريد فحصها (البحث عنها) ضمن مصفوفة .
الافضل هو فحص مسجل النظام عن البرامج التي تريدها و كون البرامج التي تريد فحصها بعدد غير معلوم .
انا اقترح عليك طريقة ان تقوم بالفحص في العقدة التالية
HKEY-LOCAL_MACHINE_SOFTWARE_MICROSOFT_WINDOWS_CurrentVersion_Unistall
لان غالبية البرامج يكون لديها عملية Unistall في هذه العقدة او المجلد يمكنك البحث عما تريد في مكان واحد
بكل الاحوال حتى لا اطيل عليك هذه دالة بثلاث طرق اختر ما يناسبك منها
PHP كود :
Public Shared Function IsApplictionInstalled(p_name As String) As Boolean
Dim displayName As String
Dim key As RegistryKey
' search in: CurrentUser
key = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
For Each keyName As [String] In key.GetSubKeyNames()
Dim subkey As RegistryKey = key.OpenSubKey(keyName)
displayName = TryCast(subkey.GetValue("DisplayName"), String)
If p_name.Equals(displayName, StringComparison.OrdinalIgnoreCase) = True Then
Return True
End If
Next
' search in: LocalMachine_32
key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
For Each keyName As [String] In key.GetSubKeyNames()
Dim subkey As RegistryKey = key.OpenSubKey(keyName)
displayName = TryCast(subkey.GetValue("DisplayName"), String)
If p_name.Equals(displayName, StringComparison.OrdinalIgnoreCase) = True Then
Return True
End If
Next
' search in: LocalMachine_64
key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall")
For Each keyName As [String] In key.GetSubKeyNames()
Dim subkey As RegistryKey = key.OpenSubKey(keyName)
displayName = TryCast(subkey.GetValue("DisplayName"), String)
If p_name.Equals(displayName, StringComparison.OrdinalIgnoreCase) = True Then
Return True
End If
Next
' NOT FOUND
Return False
End Function
و الافضل ان تكون البرامج التي تريد فحصها (البحث عنها) ضمن مصفوفة .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


