تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف تحصل علي إصدار الدوت الموجود علي جهاز الكمبيوتر
#1
كاتب الموضوع : silverlight

كيف تحصل علي إصدار الدوت نت الموجود علي جهاز الكمبيوتر ؟؟

يمكنك إضافةالكلاس التالي الي مشرعك


كود :
Imports System.Text.RegularExpressions
Imports System.Security
Imports System.IO
Imports System

Public Class SystemInfoDotNetVersion

Private Const FRAMEWORK_PATH As String = "\Microsoft.NET\Framework"
Private Const WINDIR1 As String = "windir"
Private Const WINDIR2 As String = "SystemRoot"

Private Shared Function GetHighestVersion(ByVal installationPath As String) As String
Dim versions As String() = Directory.GetDirectories(installationPath, "v*")
Dim version As String = "Unknown"

For i As Integer = versions.Length - 1 To 0 Step -1
version = extractVersion(versions(i))
If isNumber(version) Then
Return version
End If
Next

Return version
End Function

Private Shared Function extractVersion(ByVal directory As String) As String
Dim startIndex As Integer = directory.LastIndexOf("\") + 2
Return directory.Substring(startIndex, directory.Length - startIndex)
End Function

Private Shared Function isNumber(ByVal str As String) As Boolean
Return New Regex("^[0-9]+\.?[0-9]*$").IsMatch(str)
End Function

Public Shared ReadOnly Property NetFrameworkInstallationPath() As String
Get
Return WindowsPath + FRAMEWORK_PATH
End Get
End Property

Public Shared ReadOnly Property WindowsPath() As String
Get
Dim winDir As String = Environment.GetEnvironmentVariable(WINDIR1)
If [String].IsNullOrEmpty(winDir) Then
winDir = Environment.GetEnvironmentVariable(WINDIR2)
End If

Return winDir
End Get
End Property

Public Shared ReadOnly Property FrameworkVersion() As String
Get
Try
Return GetHighestVersion(NetFrameworkInstallationPath)
Catch generatedExceptionName As SecurityException
Return "Unknown"
End Try
End Get
End Property

End Class
ثم استخدام الكود بالشكل التالي أو بأي طريقة تراها مناسبة



كود :
Public Class Form1

Private DotNetVersion As String = String.Empty

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DotNetVersion = "Dot Net Version is " & SystemInfoDotNetVersion.FrameworkVersion
Me.Text = DotNetVersion
End Sub

End Class
أخوكم عمر
}}}}
تم الشكر بواسطة:
#2
كاتب المشاركة : Islam Ibrahim

الكود السابق يعتمد على أكبر رقم في اسماء المجلدات الموجودة داخل المجلد Windows\Microsoft.NET\Framework

طريقة جيدة لكن ماذا عن التحديثات Service Packs؟

يمكن العثور عليها بالاعتماد على قيم الريجيستري!
}}}}
تم الشكر بواسطة:
#3
كاتب المشاركة : silverlight

أعتقد أنه من الممكن إضافة Property التاليه الي الكلاس SystemInfoDotNetVersion


كود :
Public Shared ReadOnly Property InstalledCLR() As ArrayList
Get
Dim s As New ArrayList()
Dim componentsKeyName As String = "SOFTWARE\Microsoft\Active Setup\Installed Components", friendlyName As String, version As String
Dim componentsKey As RegistryKey = Registry.LocalMachine.OpenSubKey(componentsKeyName)
Dim instComps As String() = componentsKey.GetSubKeyNames()

For Each instComp As String In instComps
Dim key As RegistryKey = componentsKey.OpenSubKey(instComp)
friendlyName = DirectCast(key.GetValue(Nothing), String)

If friendlyName IsNot Nothing AndAlso friendlyName.IndexOf(".NET Framework") >= 0 Then
' get any version information that's available
version = DirectCast(key.GetValue("Version"), String)
If version IsNot Nothing AndAlso version.Split(","c).Length >= 4 Then
S.Add(friendlyName + (If(version IsNot Nothing, (" (" & version & ")"), "")))
End If

End If
Next

Return s

End Get
End Property
ومن ثم استخدامها من داخل المثال الخاص بالفورم بالشكل التالي


كود :
Public Class Form1

Private DotNetVersion As String = String.Empty

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

DotNetVersion = "Dot Net Version is " & SystemInfoDotNetVersion.FrameworkVersion
Me.Text = DotNetVersion

For i As Integer = 0 To SystemInfoDotNetVersion.InstalledCLR.Count - 1

ListBox1.Items.Add(SystemInfoDotNetVersion.InstalledCLR(i))

Next

End Sub

End Class

عموما الأمر متروك لكم لكي تتلاعبوا بالكود قليلا لكي تحصلوا علي ما تريدون
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Thumbs Up [مقال] كيف تحصل على صور و ادوات لمشروعك ؟ CLARO 1 35 06-11-16, 07:01 PM
آخر رد: أبو عمر
  [مقال منقول] مشروع Mono : شغل الدوت نت على اللينكس أو أي نظام تشغيل تحلم به الشاكي لله 6 2,026 13-03-14, 02:02 AM
آخر رد: الشاكي لله
  بشرى! دوت نت عربي- DotNetArabi لقاءات صوتية مع مبرمجين محترفين في الدوت نت RaggiTech 0 705 27-10-12, 04:50 PM
آخر رد: RaggiTech
  كيف تحصل علي إصدار الدوت الموجود علي جهاز الكمبيوتر RaggiTech 0 286 09-10-12, 05:47 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثالث how To Handle Events in.net Part 3 RaggiTech 0 361 09-10-12, 05:22 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الثانى how To Handle Events in .net Part 2 RaggiTech 0 393 09-10-12, 05:21 PM
آخر رد: RaggiTech
  كيفيه اداره الاحداث فى بيئه الدوت نت الجزء الاول part 1 how to Handle Events in .net RaggiTech 0 326 09-10-12, 05:20 PM
آخر رد: RaggiTech
  مجمعات الدوت نيت Dot net Assemblies RaggiTech 0 426 09-10-12, 05:06 PM
آخر رد: RaggiTech
  مقال- التوثيق في الدوت نت Documenting In .NET RaggiTech 4 712 09-10-12, 11:40 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم