gpt4 book ai didi

c# - 如何检查 Windows 锁定设置?

转载 作者:可可西里 更新时间:2023-11-01 11:50:54 25 4
gpt4 key购买 nike

我有一个 Windows 窗体需要能够检查 Windows 屏幕保护程序设置(它是否处于事件状态,它是否在 15 分钟内,“在恢复时,显示登录”是否处于事件状态)基本上如果所有这些都是真的用户如果用户没有在文本框中获得很大的失败,则获得一个很好的大通过。我在网上看过,但没有找到任何可以实现这一点的东西。我想我会通过 Windows 注册表检查设置,因为无论如何我都必须对其他系统设置执行此方法。

(我曾经使用 BAT 来完成此操作,我将在下面发布上下文,但我需要一些与 vista 及以上版本兼容的东西,以用户友好的方式显示结果)

echo The following check is for 15 minute inactive lock
echo if true the setting will be set to 1 of false 0
echo
echo is the screen saver active
reg query "HKCU\Control Panel\Desktop" /v ScreenSaveActive
echo is the screen saver locking the device
reg query "HKCU\Control Panel\Desktop" /v ScreenSaverIsSecure
echo How long until the screen saver activates (900 or below for compliance)
reg query "HKCU\Control Panel\Desktop" /v ScreenSaveTimeOut
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GroupPolicyObjects"

最佳答案

听起来您正在尝试读取注册表项并根据该值设置 bool 值。如果是这样,这应该会有所帮助:

RegistryKey regDesktop = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop");

bool isScreenSaverActive = regDesktop != null &&
regDesktop.GetValue("ScreenSaveActive").ToString() == "1";

如果您在问题中描述的设置是您想要检查的唯一设置,那么如果它们存在并匹配您的预期值,这里有一个方法将返回 true (ScreenSaveActive == 1, ScreenSaverIsSecure == 1, and ScreenSaveTimeOut <= 900) :

public static bool LockSettingsAreCompliant()
{
bool lockSettingsAreCompliant = false;

try
{
using (var regKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop"))
{
lockSettingsAreCompliant =
regKey.GetValue("ScreenSaveActive").ToString() == "1" &&
regKey.GetValue("ScreenSaverIsSecure").ToString() == "1" &&
int.Parse(regKey.GetValue("ScreenSaveTimeOut").ToString()) <= 900;
}
}
catch
{
// Swallow exceptions and let the method return false
}

return lockSettingsAreCompliant;
}

然后你可以像下面这样使用这个方法来设置文本框的文本:

screenSaver.Text = LockSettingsAreCompliant() ? "PASS" : "FAIL";

关于c# - 如何检查 Windows 锁定设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com