public static uint GetMonitorCount(DesktopWallpaperClass wp) { uint al = (uint)Screen.AllScreens.Length; uint wl = wp.GetMonitorDevicePathCount(); return(Math.Min(al, wl)); }
public WallpaperTool() { var dwc = new DesktopWallpaperClass(); _wallpaper = (IDesktopWallpaper)dwc; _enable = true; }
static void MainMain(string[] args) { if (args.Length < 1) { Options.Usage(); return; } if (!Options.ParseArgs(args)) { return; } switch (Options.SelectedAction) { case PickAction.Wallpaper: { using (var wp = new DesktopWallpaperClass()) { ChangeBackground(wp); }; break; } // case PickAction.Download: // DownloadWallpaper(); // break; case PickAction.Info: ShowInfo(); break; #if DEBUG case PickAction.Test: Test(); break; #endif } }
static void ChangeBackground(DesktopWallpaperClass wp) { uint dcount = Helpers.GetMonitorCount(wp); if (dcount < 1) { Log.NoMonitors(); return; } if (!FillPlan(dcount, out string[] thePlan))
static bool SelectMonitor(PickMonitor pickMon) { var all = Screen.AllScreens; for (int m = 0; m < all.Length; m++) { if (pickMon == PickMonitor.Primary && all[m].Primary) { MonitorId = all[m].DeviceName; pickMon = (PickMonitor)(m + 1); //use the real value now break; } if ((int)pickMon - 1 == m) { //only setting this to indicate that we found something MonitorId = all[m].DeviceName; } } if (MonitorId == null) { Log.MonitorInvalid(pickMon); return(false); } using (var wp = new DesktopWallpaperClass()) { uint dcount = Helpers.GetMonitorCount(wp); for (uint m = 0; m < dcount; m++) { string dname = wp.GetMonitorDevicePathAt(m); int dnum = wp.GetMonitorNumber(dname); // undocumented :-o if (dnum < 1 || dnum > dcount) { Log.InvalidMonitorNum(dnum); return(false); } if (dnum == (int)pickMon) { MonitorId = dname; break; } } } return(true); }