public FileNodes(Config config, Screensaver screensaver) { this.config = config; this.screensaver = screensaver; this.fileDatabase = new FileDatabase(this.screensaver.readOnly); //this.fileDatabase.MetadataReadEvent += new MetadataReadEventHandler(metadataShow); if (screensaver.action != Screensaver.Actions.Wallpaper) { this.resetFoldersQueue(); this.backgroundWorker = new System.ComponentModel.BackgroundWorker(); this.backgroundWorker.WorkerReportsProgress = true; this.backgroundWorker.WorkerSupportsCancellation = true; this.backgroundWorker.DoWork += new DoWorkEventHandler(DoWorkImageFolder); this.backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(progressChanged); this.backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(runWorkerCompleted); // Use local folders as this.folders is used in backgroundWorker //var folders = Utils.stringToConcurrentQueue(Convert.ToString(this.config.getPersistant("folders"))); // Purge database in main thread rather, to avoid having to run database filter twice this.purgeNotMatchingParentFolders(this.folders); this.backgroundWorker.RunWorkerAsync(); } }
//private bool installUpdates = false; //public WebBrowser browser; //private delegate void AddBrowser(); public Config(Screensaver screensaver) { this.screensaver = screensaver; this.InitializeComponent(); this.browser.ObjectForScripting = this; this.browser.AllowWebBrowserDrop = false; foreach (Screen screen in Screen.AllScreens) { this.maxMonitorDimension = Math.Max(Math.Max(this.maxMonitorDimension, screen.Bounds.Width), screen.Bounds.Height); } }
public Monitor(IntPtr previewHwnd, int id, Screensaver screensaver) : this(id, screensaver) { SetParent(this.Handle, previewHwnd); SetWindowLong(this.Handle, -16, new IntPtr(GetWindowLong(this.Handle, 0) | 0x40000000)); // Place our window inside the parent Rectangle ParentRect; GetClientRect(previewHwnd, out ParentRect); Size = ParentRect.Size; }
public Monitor(int id, Screensaver screensaver) { InitializeComponent(); // MessageBox.Show("Monitor: " + id); this.browser.Url = new Uri(Constants.getDataFolder(Constants.MonitorHtmlFile), System.UriKind.Absolute); this.screensaver = screensaver; this.id = id; this.Text = "Monitor " + Convert.ToString(this.id+1) + " " + Constants.AppName; this.history = new List<long>(); this.browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.DocumentCompleted); }
public Monitor(Rectangle Bounds, int id, Screensaver screensaver) : this(id, screensaver) { this.Bounds = Bounds; }
static void Main(string[] args) { //MessageBox.Show(String.Join(" ", args)); IntPtr previewHwnd = IntPtr.Zero; IntPtr[] hwnds; Actions action = Actions.Screensaver; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); hwnds = null; if (args.Length > 0) { string arg1 = args[0].ToLower().Trim(); string arg2 = null; if (arg1.Length > 2) { arg2 = arg1.Substring(3).Trim(); arg1 = arg1.Substring(0, 2); } else if (args.Length > 1) { arg2 = args[1]; } switch (arg1[1]) { case 'a': string path=""; for (int i = 1; i < args.Length; i++) path += args[i] + " "; path = path.Trim(); //MessageBox.Show(path); Screensaver.setAsCurrentScreensaver(path); /* MessageBox.Show("IsAdmin: " + Convert.ToString(Screensaver.IsRunAsAdmin()) + Environment.NewLine + Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Constants.AppFolderName, Constants.DataFolder));*/ // MessageBox.Show("IsAdmin: " + Convert.ToString(Screensaver.IsRunAsAdmin())); Application.Exit(); return; break; case 'c': action = Actions.Config; break; case 't': case 'p': if (arg1[1] == 't') action = Actions.Test; else action = Actions.Preview; //action = Actions.Test; hwnds = new IntPtr[args.Length - 1]; for (int i = 1; i < args.Length; i++) { hwnds[i - 1] = new IntPtr(long.Parse(args[i])); } //previewHwnd = new IntPtr(long.Parse(arg2)); break; case 'o': string setting = "0"; string value = args[0].Trim("-/\\".ToCharArray()); if (string.Compare(value, "on", true) == 0) setting = "1"; string oldValue = "on"; if (Convert.ToString(Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "ScreenSaveActive", null)) == "0") oldValue = "off"; Registry.SetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop", "ScreenSaveActive", setting); MessageBox.Show("Your screensaver has been truned " + value + "." + Environment.NewLine + "(It was " + oldValue + ")", Constants.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information ); Application.Exit(); return; break; case 'w': action = Actions.Wallpaper; break; case 'x': string wallpaperPath = args[1].Trim("-/\\".ToCharArray()); Wallpaper.setWallpaper(wallpaperPath); Application.Exit(); return; break; } } bool readOnly = Screensaver.singleProcess(action); if (!Screensaver.checkBrowserVersionOk()) { Application.Exit(); return; } Screensaver screensaver = new Screensaver(action, readOnly, hwnds); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(screensaver.CleanUpOnException); switch (action) { case Actions.Config: Application.Run(screensaver); break; case Actions.Preview: //MessageBox.Show(hwnds[0].ToString()); screensaver.monitors = new Monitor[hwnds.Length]; screensaver.monitors[0] = new Monitor(hwnds[0], 0, screensaver); screensaver.monitors[0].FormClosed += new FormClosedEventHandler(screensaver.OnFormClosed); screensaver.monitors[0].PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(screensaver.PreviewKeyDown); screensaver.monitors[0].browser.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(screensaver.PreviewKeyDown); Application.Run(screensaver.monitors[0]); break; default: Cursor.Hide(); Application.AddMessageFilter(new MouseMessageFilter()); MouseMessageFilter.MouseMove += new MouseEventHandler(screensaver.MouseMove); MouseMessageFilter.MouseClick += new MouseEventHandler(screensaver.MouseClick); Application.Run(screensaver); break; } }
public void setBrowserBodyClasses(WebBrowser browser, Screensaver.Actions action) { setBrowserBodyClasses(browser, action, null); }
public static void setBrowserBodyClasses(WebBrowser browser, Screensaver.Actions action, string classes) { HtmlElementCollection elems = browser.Document.GetElementsByTagName("body"); foreach (HtmlElement elem in elems) { switch (action) { case Screensaver.Actions.Preview: classes += " preview"; break; case Screensaver.Actions.Config: classes += " config"; break; case Screensaver.Actions.Screensaver: classes += " screensaver"; break; case Screensaver.Actions.Test: classes += " test"; break; case Screensaver.Actions.Slideshow: classes += " slideshow"; break; } classes += " IE" + browser.Version.Major; if (browser.Version.Major < 8) classes += " lowIE"; elem.SetAttribute("className", elem.GetAttribute("className") + classes); } }
public Wallpaper(Screensaver screensaver) { this.screensaver = screensaver; }