Exemple #1
0
        public static uint GetMonitorCount(DesktopWallpaperClass wp)
        {
            uint al = (uint)Screen.AllScreens.Length;
            uint wl = wp.GetMonitorDevicePathCount();

            return(Math.Min(al, wl));
        }
Exemple #2
0
        public WallpaperTool()
        {
            var dwc = new DesktopWallpaperClass();

            _wallpaper = (IDesktopWallpaper)dwc;
            _enable    = true;
        }
Exemple #3
0
        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
            }
        }
Exemple #4
0
        static void ChangeBackground(DesktopWallpaperClass wp)
        {
            uint dcount = Helpers.GetMonitorCount(wp);

            if (dcount < 1)
            {
                Log.NoMonitors();
                return;
            }

            if (!FillPlan(dcount, out string[] thePlan))
Exemple #5
0
        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);
        }