Firefox Version ermitteln

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von timonator.

    Firefox Version ermitteln

    Hallo liebe Community,

    da die Suchfunktion mich nicht nicht weiter gebracht hat, möchte ich euch eine Frage stellen.
    Ist es möglich meinen eigenen Rechner zu überprüfen, ob eine Software(z.B. Firefox) installiert ist und welche Version das ist?
    Mit den MS Officeprogrammen habe ich das bereits schon hingekriegt nur weiß ich nicht wie ich das mit anderen Programmen wie z.B. Firefox angehe.
    Würde mich über jede Hilfe freuen.

    Gruß Asgard
    Ich weiß ja nicht wie du googelst, aber scheinbar falsch ;)
    Folgendes: Wenn FF installiert ist, dann gibt es in der Registry (sofern du ein x64 System hast) einen Eintrag unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ der mit Mozilla Firefox beginnt. Es gibt einen Eintrag in diesem Node der sich DisplayVersion nennt.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Eine weitere Möglichkeit ist, die firefox.exe auszulesen:

    VB.NET-Quellcode

    1. Dim fileVersionInfo As FileVersionInfo = fileVersionInfo.GetVersionInfo("C:\...\Mozilla Firefox\firefox.exe")
    2. Label1.Text = fileVersionInfo.ProductVersion
    Kann timonators Lösung nur empfehlen, da brauchst du keine AdminRechte, es ist kürzer und wahrscheinlich sicherer, da ich nicht versprechen kann dass der Pfad überall funktioniert.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Ich würde z.B. folgendermaßen vorgehen:

    1. Ersteinmal abfragen, ob es sich um ein 32, oder 64-Bit System handelt.

    VB.NET-Quellcode

    1. Private Function checkBit() As Integer
    2. Dim PCArchitektur_check As String
    3. PCArchitektur_check = Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager\Environment", False).GetValue("PROCESSOR_ARCHITECTURE")
    4. Dim AMD64 As String
    5. AMD64 = "AMD64"
    6. Dim x86 As String
    7. x86 = "x86"
    8. Dim output As Integer
    9. Try
    10. Select Case PCArchitektur_check
    11. Case AMD64
    12. output = 64
    13. Case x86
    14. output = 32
    15. Case Else
    16. output = 0
    17. End Select
    18. Catch ex As Exception
    19. output = Nothing
    20. MessageBox.Show("No Registry access")
    21. End Try
    22. Return output
    23. End Function

    Das ist nötig, da die benötigten Registrykeys an verschiedenen Adressen liegen.

    2. Den Pfad der Datei ermitteln.

    VB.NET-Quellcode

    1. Public Function appFullPath(ByVal sender As String) As String
    2. sender.ToLower()
    3. Dim key As RegistryKey
    4. Dim path As String = Nothing
    5. If checkBit() = 64 Then
    6. key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\")
    7. ' Wie hier die genaue Struktur des Pfades ist, weiß ich nicht, diese Funktion muß also dem entsprechend angepaßt werden
    8. ElseIf checkBit() = 32 Then
    9. key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" & sender)
    10. path = key.GetValue("Path")
    11. key.Close()
    12. Else
    13. path = Nothing
    14. End If
    15. path = (path & "\" & sender)
    16. Return path
    17. End Function

    Gibt den kompletten Pfad, mit Dateiname und Dateiendung aus.

    3. Dateinfos auslesen.

    VB.NET-Quellcode

    1. Public Function appInfo(ByVal sender As String) As FileVersionInfo
    2. Dim FileVerInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(sender)
    3. Return FileVerInfo
    4. End Function

    4. Anwenden.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim app As String = "firefox.exe"
    3. Label1.Text = appFullPath(app)
    4. Label2.Text = appInfo(appFullPath(app)).ProductName
    5. Label3.Text = appInfo(appFullPath(app)).ProductVersion
    6. ' u.s.w.
    7. End Sub

    An dem Punkt einfach mal schauen, was Intellisence so hergibt. ;)

    Der gesamte Code.

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim app As String = "firefox.exe"
    5. Label1.Text = appFullPath(app)
    6. Label2.Text = appInfo(appFullPath(app)).ProductName
    7. Label3.Text = appInfo(appFullPath(app)).ProductVersion
    8. ' u.s.w.
    9. End Sub
    10. Private Function checkBit() As Integer
    11. Dim PCArchitektur_check As String
    12. PCArchitektur_check = Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager\Environment", False).GetValue("PROCESSOR_ARCHITECTURE")
    13. Dim AMD64 As String
    14. AMD64 = "AMD64"
    15. Dim x86 As String
    16. x86 = "x86"
    17. Dim output As Integer
    18. Try
    19. Select Case PCArchitektur_check
    20. Case AMD64
    21. output = 64
    22. Case x86
    23. output = 32
    24. Case Else
    25. output = 0
    26. End Select
    27. Catch ex As Exception
    28. output = Nothing
    29. MessageBox.Show("No Registry access")
    30. End Try
    31. Return output
    32. End Function
    33. Public Function appFullPath(ByVal sender As String) As String
    34. sender.ToLower()
    35. Dim key As RegistryKey
    36. Dim path As String = Nothing
    37. If checkBit() = 64 Then
    38. key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\")
    39. ElseIf checkBit() = 32 Then
    40. key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" & sender)
    41. path = key.GetValue("Path")
    42. key.Close()
    43. Else
    44. path = Nothing
    45. End If
    46. path = (path & "\" & sender)
    47. Return path
    48. End Function
    49. Public Function appInfo(ByVal sender As String) As FileVersionInfo
    50. Dim FileVerInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(sender)
    51. Return FileVerInfo
    52. End Function
    53. End Class


    Ich weiß, Microsoft Namespace ist <X , das ganze soll auch nur die Vorgehensweise veranschaulichen.