Update PuttySessionsRegistryProvider.cs

Update the latest fix for the putty registry watcher, to create the registry path if it does not exist, so the watcher is able to always run.
This commit is contained in:
BlueBlock
2023-03-15 08:14:52 -04:00
parent 16f67d58d1
commit 209319f460

View File

@@ -111,12 +111,15 @@ namespace mRemoteNG.Config.Putty
try
{
var key = string.Join("\\", CurrentUserSid, PuttySessionsKey).Replace("\\", "\\\\");
var keyName = string.Join("\\", CurrentUserSid, PuttySessionsKey).Replace("\\", "\\\\");
if (Registry.Users.OpenSubKey(string.Join("\\\\", CurrentUserSid, PuttySessionsKey)) == null) return;
var query = new WqlEventQuery(
$"SELECT * FROM RegistryTreeChangeEvent WHERE Hive = \'HKEY_USERS\' AND RootPath = \'{key}\'");
var sessionsKey = Registry.Users.OpenSubKey(keyName);
if (sessionsKey == null)
{
Registry.Users.CreateSubKey(keyName);
}
var query = new WqlEventQuery($"SELECT * FROM RegistryTreeChangeEvent WHERE Hive = \'HKEY_USERS\' AND RootPath = \'{keyName}\'");
_eventWatcher = new ManagementEventWatcher(query);
_eventWatcher.EventArrived += OnManagementEventArrived;
_eventWatcher.Start();