feat: add GetGamePath (xbox only)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
internal static class Utils
|
||||
{
|
||||
public static string? GetGamePath()
|
||||
{
|
||||
string? path;
|
||||
path = TryGetXboxPath();
|
||||
return path;
|
||||
|
||||
/*
|
||||
* to-do:
|
||||
* implement steam and epic
|
||||
*/
|
||||
}
|
||||
|
||||
private static string? TryGetXboxPath()
|
||||
{
|
||||
const string keyPath = @"Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages";
|
||||
using RegistryKey? key = Registry.CurrentUser.OpenSubKey(keyPath);
|
||||
|
||||
if (key == null) return null;
|
||||
|
||||
string? match = key.GetSubKeyNames().FirstOrDefault(n => n.StartsWith(Constants.PackageName, StringComparison.OrdinalIgnoreCase));
|
||||
if (match == null) return null;
|
||||
|
||||
using RegistryKey? subKey = key.OpenSubKey(match);
|
||||
if (subKey == null) return null;
|
||||
|
||||
object? pkgRootFolder = subKey.GetValue("PackageRootFolder");
|
||||
if (pkgRootFolder == null) return null;
|
||||
|
||||
return pkgRootFolder.ToString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user