/// <summary> /// Start the screensaver in the specified mode unless one is specified in the command line. /// </summary> /// <param name="mode">The mode in which to run the screensaver. This value cannot be <see cref="ScreensaverMode.Preview"/>.</param> public void Run(ScreensaverMode mode) { if (mode == ScreensaverMode.Preview && windowHandle == IntPtr.Zero) { throw new ArgumentException("Cannot explicity run in preview mode", "mode"); } if (isEnded) { throw new Exception("This screensaver has already finished running"); } try { this.screensaverMode = ProcessCommandLine(); } catch (FormatException) { this.screensaverMode = mode; } try { switch (screensaverMode) { case ScreensaverMode.Windowed: RunWindowed(); break; case ScreensaverMode.Settings: ShowSettingsDialog(); break; case ScreensaverMode.Normal: if (!closeOnMouseMoveOverride) { closeOnMouseMove = true; } if (!closeOnClickOverride) { closeOnClick = true; } if (!closeOnKeyboardInputOverride) { closeOnKeyboardInput = true; } RunNormal(); break; case ScreensaverMode.Preview: RunPreview(); break; } } finally { isEnded = true; } }
/// <summary> /// Start the screensaver in the specified mode unless one is specified in the command line. /// </summary> /// <param name="mode">The mode in which to run the screensaver. This value cannot be <see cref="ScreensaverMode.Preview"/>.</param> public void Run(ScreensaverMode mode) { if (mode == ScreensaverMode.Preview && windowHandle == IntPtr.Zero) throw new ArgumentException("Cannot explicity run in preview mode", "mode"); if (isEnded) throw new Exception("This screensaver has already finished running"); try { this.screensaverMode = ProcessCommandLine(); } catch (FormatException) { this.screensaverMode = mode; } try { switch (screensaverMode) { case ScreensaverMode.Windowed: RunWindowed(); break; case ScreensaverMode.Settings: ShowSettingsDialog(); break; case ScreensaverMode.Normal: RunNormal(); break; case ScreensaverMode.Preview: RunPreview(); break; } } finally { isEnded = true; } }