我在 C# 中遇到了 SystemParametersInfo API 的问题。屏幕保护程序超时没有问题,但是当我尝试获取“在恢复显示登录屏幕上”复选框的状态时,我总是得到false。
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
private static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref uint pvParam, uint fWinIni);
public void Test() {
uint result = 0;
SystemParametersInfo(76, 0, ref result, 0);
}
结果将始终为 0,但是我确实看到注册表值从 1 变为 0(但我不能使用注册表值,因为通过注册表设置它会导致我的新设置仅在注销后才被处理)。
您可以使用值 14 来检索屏幕保护程序超时值。
我已经尝试将外部函数从ref uint重写为ref bool,但这并不重要。
我正在使用 Windows 7 x64。MSDN是我的参数信息来源:http:
//msdn.microsoft.com/en-us/library/ms724947 (VS.85).asp
有人有线索吗?