如何删除特定用户的注册表项
本文关键字:用户 注册表 何删除 删除 | 更新日期: 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);