Skip to content

Commit 2909e27

Browse files
committed
Tweaks to how API is determined
1 parent f0e2281 commit 2909e27

File tree

2 files changed

+9
-12
lines changed

2 files changed

+9
-12
lines changed

WinJump/Core/VirtualDesktopDefinitions/IVirtualDesktopAPI.cs

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Text.RegularExpressions;
23
using Microsoft.Win32;
34

45
namespace WinJump.Core.VirtualDesktopDefinitions;
@@ -32,28 +33,24 @@ public interface IVirtualDesktopAPI : IDisposable {
3233
/// <returns>A virtual desktop API for the installed Windows version</returns>
3334
/// <exception cref="Exception">If the particular Windows version is unsupported</exception>
3435
public static IVirtualDesktopAPI Create() {
35-
string? releaseId = Registry.LocalMachine.OpenSubKey("SOFTWARE")?.OpenSubKey("Microsoft")?
36-
.OpenSubKey("Windows NT")?.OpenSubKey("CurrentVersion")?.GetValue("CurrentBuildNumber")?.ToString();
37-
36+
OperatingSystem osInfo = Environment.OSVersion;
37+
3838
string? releaseBuild = Registry.LocalMachine.OpenSubKey("SOFTWARE")?.OpenSubKey("Microsoft")?
3939
.OpenSubKey("Windows NT")?.OpenSubKey("CurrentVersion")?.GetValue("UBR")?.ToString();
4040

41-
if(!int.TryParse(releaseId, out int releaseIdNumber)) {
42-
throw new Exception($"Unrecognized Windows release id version {releaseId}.{releaseBuild}");
43-
}
44-
4541
if(!int.TryParse(releaseBuild, out int releaseBuildNumber)) {
46-
throw new Exception($"Unrecognized Windows build version {releaseId}.{releaseBuild}");
42+
throw new Exception($"Unrecognized Windows build version {osInfo.Version.Build}.{releaseBuild}");
4743
}
4844

49-
return releaseIdNumber switch {
45+
return osInfo.Version.Build switch {
5046
// Work out the proper desktop wrapper
5147
>= 22621 => releaseBuildNumber >= 2215
5248
? new Windows11_22621_2215.VirtualDesktopApi()
5349
: new Windows11_22621.VirtualDesktopApi(),
5450
>= 22000 => new Windows11_22000.VirtualDesktopApi(),
5551
>= 17763 => new Windows10_17763.VirtualDesktopApi(),
56-
_ => throw new Exception($"Unsupported Windows version {releaseIdNumber}.{releaseBuildNumber}")
52+
// Just try the most recent as a last ditch effort
53+
_ => new Windows11_22621_2215.VirtualDesktopApi()
5754
};
5855
}
5956
}

WinJump/WinJump.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<Nullable>enable</Nullable>
77
<UseWPF>true</UseWPF>
88
<Version>2.0.4</Version>
9-
<AssemblyVersion>2.0.6</AssemblyVersion>
10-
<FileVersion>2.0.6</FileVersion>
9+
<AssemblyVersion>2.0.7</AssemblyVersion>
10+
<FileVersion>2.0.7</FileVersion>
1111
</PropertyGroup>
1212

1313
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">

0 commit comments

Comments
 (0)