如何删除特定用户的注册表项

本文关键字:用户 注册表 何删除 删除 | 更新日期: 2023-09-27 18:32:41

我有两个用户:超级用户和我的用户。当我以超级用户身份登录时,如何删除MyUser的某些注册表项。

在我的 C# 应用程序中,我想按路径删除密钥:MyUser''Software''Microsoft''Windows''CurrentVersion''Run''MyApp。注意:当我以超级用户身份登录时,我正在运行我的 C# 应用程序。

似乎Microsoft.Win32.Registry类不可能做到这一点。

如何删除特定用户的注册表项

配置文件可能会加载,也可能不会加载。为了确保加载它,您需要登录用户。然后,您可以加载配置文件并进行更改。您需要调用LogonUser()LoadUserProfile()

// log on user
UserToken usertoken = null;
LogonUser(user, domain, pass, LogonType.LOGON32_LOGON_NETWORK, 
              LogonProvider.LOGON32_PROVIDER_DEFAULT, out usertoken));
// load the profile
PROFILEINFO p = new PROFILEINFO();
p.dwFlags = 1;
p.lpUserName = user;
p.dwSize = Marshal.SizeOf(p);
LoadUserProfile(usertoken, ref profile);
// get a handle to the registry
Microsoft.Win32.SafeHandles.SafeRegistryHandle saferh = 
   new Microsoft.Win32.SafeHandles.SafeRegistryHandle(profile.hProfile, false);
Microsoft.Win32.RegistryKey rk = 
   Microsoft.Win32.RegistryKey.FromHandle(m_RegHandle, Microsoft.Win32.RegistryView.Default);