gpt4 book ai didi

c# - 如何在C#中调用Windows的屏幕保护程序?

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

如果已定义,我想在 Windows 环境中调用用户的屏幕保护程序。

我知道它可以使用纯 C++ 代码完成(然后在 C# 中包装非常简单),如建议的那样 here .

不过,出于好奇,我想知道这样的任务是否可以通过使用 dot net 框架(2.0 及更高版本)的纯托管代码来完成,而无需 p/invoke 且无需访问 C++ 端(其中,在转,可以很容易地使用 Windows API)。

最佳答案

我有一个想法,但我不确定这是否会持续有效,所以我认为您需要进行一些研究,但希望这足以让您入门。

屏幕保护程序只是一个可执行文件,注册表将此可执行文件的位置存储在 HKCU\Control Panel\Desktop\SCRNSAVE.EXE

在我的 Vista 副本上,这对我有用:

RegistryKey screenSaverKey = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop");
if (screenSaverKey != null)
{
string screenSaverFilePath = screenSaverKey.GetValue("SCRNSAVE.EXE", string.Empty).ToString();
if (!string.IsNullOrEmpty(screenSaverFilePath) && File.Exists(screenSaverFilePath))
{
Process screenSaverProcess = Process.Start(new ProcessStartInfo(screenSaverFilePath, "/s")); // "/s" for full-screen mode
screenSaverProcess.WaitForExit(); // Wait for the screensaver to be dismissed by the user
}
}

关于c# - 如何在C#中调用Windows的屏幕保护程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927843/

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