I have an idea, I'm not sure how consistent this will work, so you need to learn a little, but I hope this is enough to get you started.
A screensaver is just an executable file, and the registry stores the location of this executable file in HKCU\Control Panel\Desktop\SCRNSAVE.EXE
On my copy of Vista, this worked for me:
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"));
Matthew brindley
source share