Framework detecteren met een programma

Status
Niet open voor verdere reacties.

hanonymouss

Gebruiker
Lid geworden
7 sep 2011
Berichten
283
Hallo,

Ik wil een programma maken dat framework op een computer detecteert. Ik bedoel
daarmee dat hij ook de versie moet herkennen. Ik kan ni zo op een code komen.

Graag jullie hulp A.U.B :confused:
 
Code

De code is één ding, maar waar moet ik die codes plaatsen form load?
 
Zoals je ziet is het een aparte class, genaamd SystemInfo.
 
Krijg nog geen informatie

Ik heb de code kunnen converteren:

[CPP]Imports System
Imports System.IO
Imports System.Security
Imports System.Text.RegularExpressions
Public Class Form1
Private Const FRAMEWORK_PATH As String = "\Microsoft.NET\Framework"
Private Const WINDIR1 As String = "windir"
Private Const WINDIR2 As String = "SystemRoot"
Public Shared ReadOnly Property FrameworkVersion() As String
Get
Try
Return getHighestVersion(NetFrameworkInstallationPath)
Catch generatedExceptionName As SecurityException
Return "Unknown"
End Try
End Get
End Property
Private Shared Function getHighestVersion(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(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(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


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

End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

End Sub
End Class[/CPP]

Als ik mijn programma debug dan krijg ik gewoon een lege form.

Heb je mischien een idee hoe ik de versie van de framework en framework zelf in bijvoorbeeld msgbox zet in een button.

[CPP]Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)

msgbox (" Hier!")
Handles Button1.Click

[/CPP]
 
Laatst bewerkt door een moderator:
Natuurlijk krijg je dan een leeg form! Wat dacht je dan? :P
Je kunt die properties toch gebruiken?
(Je kunt evt. overbodige functies weghalen)

Als ik de code bekijk moet het dus zoiets worden:

[cpp]MsgBox(getHighestVersion(NetFrameworkInstallationPath()))[/cpp]
 
Verkeerde informatie

Hij zegt dat ik een versie 3.5 van mijn framework heb, maar ik heb een 4.0?

Kun je mij ook eens uitleggen hoe je dat hebt gevonden, dat ik dat ook in de toekomst kant doen.
 
hanonymouss zei:
Hij zegt dat ik een versie 3.5 van mijn framework heb, maar ik heb een 4.0?
Vreemd, dan zou je even iets anders moeten opzoeken.

hanonymouss zei:
Kun je mij ook eens uitleggen hoe je dat hebt gevonden, dat ik dat ook in de toekomst kant doen.
Met de bekende zoekmachine: Google. Link: http://www.google.nl/
 
Werkt prima hoor. Alleen is die progressbar echt nodig? :confused:
 
Opgeslost

Eigenlijk niet, maar dat is voor de show :p

Hartelijk dank voor u help JoZ1

Opgelost:thumb:
 
Prima :thumb:

Je progje ziet er best fraai uit, hoor :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan