0

インストールされているさまざまなアプリケーションのバージョン番号を取得し、それらが特定の値よりも低い場合はアクションを実行しようとしています。例えば:

Dim regKey As RegistryKey
        Dim ver As ???????
        regKey = Registry.LocalMachine.OpenSubKey("Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX")
        ver = regKey.GetValue("DisplayVersion")
                MessageBox.Show(ver)
            If ver < 11.4.402.287 Then
            'Install updated version of software in question
        End If
        regKey.Close()

チェックよりも大きい/小さいを簡単に実行できるようにVerを定義するにはどうすればよいですか?私はもう試した:

Dim ver as integer
Dim ver as decimal

これらは両方とも「追加情報:文字列「11.4.402.287」からタイプ「Decimal」への変換は無効です」を返します。

4

2 に答える 2

1

最初の2つのコンポーネントを見ていると仮定して、単純な解析とチェックを行います。

Dim va = Ver.split("."c)
If va(0) < 11 OrElse (va(0) = 11) and va(1) < 4) Then 
    'Install updated ....
End If
于 2012-10-24T21:34:23.533 に答える
0

これの正規表現は次のようになります。

(?<major>\d+)(\.(?<minor>\d+)(\.(?<revision>\d+)(\.(?<build>\d+))?)?)?

次に、グループを使用してバージョン番号を抽出できます。

Dim l_version As Regex = New Regex("(?<major>\d+)(\.(?<minor>\d+)(\.(?<revision>\d+)(\.(?<build>\d+))?)?)?")
Dim l_versionMatch As Match = l_version.Match( "1.2.3" )

Dim l_major As String = l_versionMatch.Groups("major").Value
于 2012-10-24T21:35:55.447 に答える