示例#1
0
        public static bool Set(SetOptions op)
        {
            //Attempt to grab any window that matches
            IntPtr wndHandle = WindowUtils.FindWindowByTitle(op.windowName);

            if (wndHandle == IntPtr.Zero)
            {
                wndHandle = WindowUtils.FindWindowByClass(op.className);
            }

            //Fail early if we didn't find anything
            if (wndHandle == IntPtr.Zero)
            {
                Console.Error.WriteLine("Failed to find matching window.");
                return(false);
            }

            int x = 0, y = 0, w = 0, h = 0;

            parseBounds(op.bounds, out x, out y, out w, out h);

            //Set the wallpaper
            bool succesful = new WallpaperManager().SetWallpaper(wndHandle, x, y, w, h);

            if (!succesful)
            {
                Console.Error.WriteLine("Failed to set wallpaper");
            }

            return(succesful);
        }
示例#2
0
        protected void RenderTask()
        {
            try
            {
                Cef.EnableHighDPISupport();

                Application.SetCompatibleTextRenderingDefault(false);

                Cef.Initialize(Settings);

                WallpaperManager.Initalize();

                WallpaperManager.ShowWindow();

                DesktopTool.AppendToWallpaperArea((wallpaperHandle = WallpaperManager.Window.Form.Handle));

                WallpaperManager.Window.FillDisplay();

                Logger.Log("Render task started");

                Application.Run();
            } catch (ThreadAbortException)
            {
                Thread.ResetAbort();
                OnRenderQuit();
                Logger.Log("Render task finished");
            }
        }
示例#3
0
 public async void ApplyWallpaper(Wallpaper w)
 {
     WallpaperManager.VideoAspect = AppManager.Setting.Wallpaper.VideoAspect;
     WallpaperManager.Show(w);
     AppManager.AppData.Wallpaper = w.AbsolutePath;
     await AppManager.ApplyAppDataAsync();
 }
示例#4
0
        public static bool Start(StartOptions op)
        {
            Process p    = Process.Start(op.path, op.args);
            IntPtr  hwnd = tryGetMainWindow(p);

            if (hwnd == IntPtr.Zero)
            {
                Console.Error.WriteLine("Failed to retrieve main window handle");
                if (!p.HasExited)
                {
                    p.Kill();
                }
                return(false);
            }

            int x = 0, y = 0, w = 0, h = 0;

            parseBounds(op.bounds, out x, out y, out w, out h);

            bool succesful = new WallpaperManager().SetWallpaper(hwnd, x, y, w, h);

            if (!succesful)
            {
                Console.Error.WriteLine("Failed to set wallpaper");
                p.CloseMainWindow(); //Close gracefully
            }

            return(succesful);
        }
示例#5
0
        private static void WallpaperManager_MaximizedEvent(object sender, bool e)
        {
            switch (Setting.Wallpaper.ActionWhenMaximized)
            {
            case ActionWhenMaximized.Play: break;

            case ActionWhenMaximized.Pause:
                if (e)
                {
                    WallpaperManager.Pause();
                }
                else
                {
                    WallpaperManager.Resume();
                }
                break;

            case ActionWhenMaximized.Stop:
                if (e)
                {
                    WallpaperManager.Close();
                }
                else
                {
                    ShowCurrentWallpapers();
                }
                break;
            }
        }
示例#6
0
 public override void OnReceive(Context context, Intent intent)
 {
     Toast.MakeText(context, "Its time to download the data", ToastLength.Short).Show();
     try
     {
         ThreadPool.QueueUserWorkItem(async m =>
         {
             var httpClient = new HttpClient();
             var result     = await httpClient.GetStringAsync(urlplussecret);
             var post       = JsonConvert.DeserializeObject <ImageOfTheDay>(result);
             imageOfTheDay  = post;
             using (var dbhelper = new DBHelper())
             {
                 dbhelper.InsertIntoTableImageOfTheDay(imageOfTheDay);
                 if (post.Media_Type == "image")
                 {
                     WallpaperManager wallpaperManager = WallpaperManager.GetInstance(Application.Context);
                     wallpaperManager.SetBitmap(ImageComposer.RetrieveImagey(post.Hdurl));
                 }
             }
         });
     }
     catch
     {
         //Failed download
     }
 }
示例#7
0
        public static void RefreshLocalWallpapers()
        {
            Wallpapers = new List <Wallpaper>();

            if (!SettingInitialized)
            {
                return;
            }

            try
            {
                if (!Directory.Exists(LocalWallpaperDir))
                {
                    Directory.CreateDirectory(LocalWallpaperDir);
                }

                var wallpapers = WallpaperManager.GetWallpapers(LocalWallpaperDir);
                foreach (var item in wallpapers)
                {
                    Wallpapers.Add(item);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
        }
        private void SetWallpaperFromStream(Context context, Stream stream)
        {
            WallpaperManager wallpaperManager
                = WallpaperManager.GetInstance(context);

            wallpaperManager.SetStream(stream);
        }
示例#9
0
        private Task RefreshPlaylist()
        => Task.Factory.StartNew(() =>
        {
            lock (_refreshLock)
            {
                if (_playlist.Count <= MonitorsManager.MonitorCount * 2)
                {
                    _logger.Info("Refreshing playlist started");
                    foreach (var playlistElement in PlaylistManager.GetNext())
                    {
                        var wallpaper = WallpaperManager.GetById(playlistElement.WallpaperId);
                        if (wallpaper.HasValue)
                        {
                            _playlist.Add(wallpaper.Value);
                        }
                    }
                }

                while (_playlistLast.Count > 10)
                {
                    _playlistLast.RemoveAt(0);
                }
            }
        }).ContinueWith(x =>
        {
            if (x.IsFaulted)
            {
                _logger.Error(x.Exception, "Refreshing playlist failed");
            }
        });
示例#10
0
        private void btnSelect_Click(object sender, RoutedEventArgs e)
        {
            using (var openFileDialog = new OpenFileDialog())
            {
                openFileDialog.InitialDirectory = "WallpaperSamples";
                openFileDialog.Filter           = "All files (*.*)|*.*";

                if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    var displayIds = monitorsVM.Where(m => m.Checked).Select(m => (uint)monitorsVM.IndexOf(m)).ToArray();
                    btnApply_Click(null, null);
                    _ = WallpaperManager.ShowWallpaper(new WallpaperModel()
                    {
                        Path = openFileDialog.FileName
                    }, displayIds);
                    //var form = new MpvPlayer.MpvForm();
                    //form.FormBorderStyle = FormBorderStyle.FixedSingle;

                    //form.Show();
                    //form.InitPlayer();
                    //form.Player.AutoPlay = true;
                    //form.Player.Load(openFileDialog.FileName);
                }
            }
        }
示例#11
0
 protected override void OnExit(ExitEventArgs e)
 {
     WallpaperManager.Dispose();
     NLog.LogManager.Shutdown();
     notifyIcon.Dispose();
     base.OnExit(e);
 }
示例#12
0
        public void SetTest()
        {
            string prev = WallpaperManager.Slideshow.IsEnabled ? string.Join(";", WallpaperManager.Slideshow.Images.Select(shi => shi.FileSystemPath)) : '@' + WallpaperManager.Monitors[0].ImagePath;
            var    pos  = WallpaperManager.WallpaperFit;
            var    clr  = WallpaperManager.BackgroundColor;

            try
            {
                Assert.That(() => WallpaperManager.SetSolidBackground(Color.Black), Throws.Nothing);
                Assert.That(WallpaperManager.Enabled, Is.False);
                Assert.That(WallpaperManager.Monitors[0].ImagePath, Is.Empty);
                Assert.That(() => WallpaperManager.SetPicture(TestCaseSources.ImageFile, WallpaperFit.Center, 0), Throws.Nothing);
                Assert.That(WallpaperManager.Slideshow.Images, Is.Empty);
                Assert.That(() => WallpaperManager.SetSlideshow(TestCaseSources.TempDir, WallpaperFit.Span), Throws.Nothing);
                Assert.That(WallpaperManager.Monitors[0].ImagePath, Is.Not.Empty);
            }
            finally
            {
                var files = prev.Split(';');
                if (files.Length == 1 && files[0].StartsWith("@"))
                {
                    WallpaperManager.Monitors[0].ImagePath = files[0].TrimStart('@');
                }
                else
                {
                    WallpaperManager.Slideshow.Images = files.Select(f => new ShellItem(f)).ToArray();
                }
                WallpaperManager.BackgroundColor = clr;
                WallpaperManager.WallpaperFit    = pos;
            }
        }
示例#13
0
 public virtual Task ShowWallpaper(WallpaperModel wallpaper, params uint[] screenIndexs)
 {
     return(Task.Run(() =>
     {
         foreach (var index in screenIndexs)
         {
             RenderControl renderControl = null;
             if (!_controls.ContainsKey(index))
             {
                 WallpaperManager.UIInvoke(() =>
                 {
                     renderControl = _controls[index] = new RenderControl();
                     renderControl.InitRender();
                 });
             }
             else
             {
                 renderControl = _controls[index];
             }
             var host = RenderHost.GetHost(index);
             WallpaperManager.UIInvoke(() =>
             {
                 host !.ShowWallpaper(renderControl);
             });
             renderControl.Load(wallpaper.Path);
         }
     }));
 }
示例#14
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            wallpaperManager = WallpaperManager.GetInstance(Application.Context);

            configurationManager = new ConfigurationManager(PreferenceManager.GetDefaultSharedPreferences(Application.Context));

            // Create your application here
            SetContentView(Resource.Layout.BackgroundSettings);
            wallpaperPreview           = FindViewById <ImageView>(Resource.Id.wallpaperPreview);
            blur                       = FindViewById <SeekBar>(Resource.Id.blur);
            opacity                    = FindViewById <SeekBar>(Resource.Id.opacity);
            opacity.Max                = 255;
            blur.Max                   = 25;
            blur.StopTrackingTouch    += Blur_StopTrackingTouch;
            opacity.StopTrackingTouch += Opacity_StopTrackingTouch;
            if (Build.VERSION.SdkInt > BuildVersionCodes.LollipopMr1)
            {
                if (Application.Context.CheckSelfPermission("android.permission.READ_EXTERNAL_STORAGE") != Permission.Granted)
                {
                    RequestPermissions(new string[1] {
                        "android.permission.READ_EXTERNAL_STORAGE"
                    }, 1);
                }
                else
                {
                    LoadPreviousValues();
                }
            }
            else
            {
                LoadPreviousValues();
            }
        }
示例#15
0
        private static void WallpaperManager_MaximizedEvent(object sender, bool e)
        {
            switch (Setting.Wallpaper.ActionWhenMaximized)
            {
            case ActionWhenMaximized.Play: break;

            case ActionWhenMaximized.Pause:
                if (e)
                {
                    WallpaperManager.Pause();
                }
                else
                {
                    WallpaperManager.Resume();
                }
                break;

            case ActionWhenMaximized.Stop:
                if (e)
                {
                    WallpaperManager.Close();
                }
                else
                {
                    var current = Wallpapers.FirstOrDefault(m => m.AbsolutePath == AppData.Wallpaper);
                    if (current != null)
                    {
                        WallpaperManager.Show(current);
                    }
                    WallpaperManager.Show(current);
                }
                break;
            }
        }
示例#16
0
        //sevice wallpapers
        public bool GetWallpaperBysystem(Bitmap cropped)
        {
            WallpaperManager wallpaperManager = WallpaperManager.GetInstance(Android.App.Application.Context);


            Android.Graphics.Bitmap CroppedBitmap = Android.Graphics.Bitmap.CreateScaledBitmap(cropped, wallpaperManager.DesiredMinimumWidth, wallpaperManager.DesiredMinimumWidth, true);


            if (Xamarin.Essentials.Preferences.Get("Screen", 1) == 1)
            {
                wallpaperManager.SetBitmap(cropped, null, true, WallpaperManagerFlags.System);
            }
            else if (Xamarin.Essentials.Preferences.Get("Screen", 1) == 2)
            {
                wallpaperManager.SetBitmap(cropped, null, true, WallpaperManagerFlags.Lock);
            }
            else if (Xamarin.Essentials.Preferences.Get("Screen", 1) == 3)
            {
                wallpaperManager.SetBitmap(cropped, null, true, WallpaperManagerFlags.Lock);
                wallpaperManager.SetBitmap(cropped, null, true, WallpaperManagerFlags.System);
            }



            return(true);
        }
示例#17
0
        private void btnApply_Click(object sender, RoutedEventArgs e)
        {
            var vm      = (ConfigerViewModel)configer.DataContext;
            var setting = ConfigerService.GetData <LiveWallpaperOptions>(vm.Nodes);

            _ = WallpaperManager.SetOptions(setting);
        }
        private void SetUniformToFillStreachWallpaper()
        {
            WallpaperStreach = Stretch.UniformToFill;
            SaveWallpaperSetting();
            WallpaperManager wm = new WallpaperManager();

            wm.Init();
        }
        private void SetNoneStreachWallpaper()
        {
            WallpaperStreach = Stretch.None;
            SaveWallpaperSetting();
            WallpaperManager wm = new WallpaperManager();

            wm.Init();
        }
        /// <summary>
        ///
        /// </summary>
        private void SetPictureWallpaper()
        {
            WallpaperSettingKind = WallpaperKind.Picture;
            WallpaperGridsInit();

            WallpaperManager wm = new WallpaperManager();

            wm.Init();
        }
示例#21
0
        public static async Task Initlize()
        {
            //开机启动
#if UWP
            AutoStartupHelper.Initlize(AutoStartupType.Store, "LiveWallpaper");
#else
            AutoStartupHelper.Initlize(AutoStartupType.Win32, "LiveWallpaper");
#endif

            //多语言
            Xaml.CustomMaps.Add(typeof(TaskbarIcon), TaskbarIcon.ToolTipTextProperty);
            //不能用Environment.CurrentDirectory,开机启动目录会出错
            ApptEntryDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            string path = Path.Combine(ApptEntryDir, "Res\\Languages");
            LanService.Init(new JsonDB(path), true, "zh");

            //配置相关
            var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            AppDataDir        = $"{appData}\\LiveWallpaper";
            UWPRealAppDataDir = Path.Combine(ApplicationData.Current.LocalCacheFolder.Path, "Roaming\\LiveWallpaper");
            SettingPath       = $"{AppDataDir}\\Config\\setting.json";
            //LocalWallpaperDir = $"{AppDataDir}\\Wallpapers";
            //因为uwp store权限问题所以改为 %userprofile%\videos\LivewallpaperCache
            //string videoDir = Environment.GetFolderPath(Environment.SpecialFolder.MyVideos);
            //LocalWallpaperDir = $"{videoDir}\\LivewallpaperCache";

            AppDataPath      = $"{AppDataDir}\\appData.json";
            PurchaseDataPath = $"{AppDataDir}\\purchaseData.json";

            await CheckDefaultSetting();

            //应用程序数据
            AppData = await JsonHelper.JsonDeserializeFromFileAsync <AppData>(AppDataPath);

            if (AppData == null)
            {
                AppData = new AppData();
                await ApplyAppDataAsync();
            }

            //加载壁纸
            await Task.Run(() =>
            {
                RefreshLocalWallpapers();
                //if (AppData.Wallpaper != null)
                //{
                WallpaperManager.MaximizedEvent += WallpaperManager_MaximizedEvent;
                var current = Wallpapers.FirstOrDefault(m => m.AbsolutePath == AppData.Wallpaper);
                if (current != null)
                {
                    WallpaperManager.VideoAspect = Setting.Wallpaper.VideoAspect;
                    WallpaperManager.Show(current);
                }
                WallpaperManager.MonitorMaxiemized(true);
                //}
            });
        }
        private void SetFonWallpaper()
        {
            WallpaperSettingKind = WallpaperKind.Fon;
            WallpaperGridsInit();

            WallpaperManager wm = new WallpaperManager();

            wm.Init();
        }
示例#23
0
 private async void SetAsWallPaperButton_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     var trans         = (IllustTransitioner)IllustBrowserContainer.Children[1];
     var transitions   = (IEnumerable <TransitionerSlide>)trans.IllustTransition.ItemsSource;
     var selectedIndex = transitions.ToList()[trans.IllustTransition.SelectedIndex];
     var location      = Path.Combine(AppContext.PermanentlyFolder, "wallpaper.bmp");
     var wallPaper     = new WallpaperManager(location, (BitmapSource)((IllustPresenter)selectedIndex.Content).ImgSource);
     await wallPaper.Execute();
 }
示例#24
0
        public SetURLForm(WallpaperManager manager)
        {
            Manager = manager;
            InitializeComponent();

            urlBox.Text = manager.URL;

            selectBtn.Select();
        }
示例#25
0
        public WebWallpaper()
        {
            Controller       = new WallpaperController(this);
            WallpaperManager = new WallpaperManager(this);
            Input            = WallpaperManager;

            renderThread = new WallpaperThread(RenderTask);
            inputThread  = new InputThread(InputTask);
        }
示例#26
0
        private static WallpaperManager GetWallpaperManager()
        {
            if (ContextHelper.Current == null)
            {
                throw new InvalidOperationException("Operation called too early in application lifecycle.");
            }

            return(WallpaperManager.GetInstance(ContextHelper.Current));
        }
示例#27
0
        public void setWallpaper()
        {
            Bitmap bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.sample);

            WallpaperManager manager = WallpaperManager.GetInstance(ApplicationContext);

            manager.SetBitmap(bitmap);
            //or
            manager.SetBitmap(bitmap, null, true, WallpaperManagerFlags.Lock);
        }
        private void LoadWallpaper(ConfigurationManager configurationManager)
        {
            int savedblurlevel    = configurationManager.RetrieveAValue(ConfigurationParameters.BlurLevel, ConfigurationParameters.DefaultBlurLevel);
            int savedOpacitylevel = configurationManager.RetrieveAValue(ConfigurationParameters.OpacityLevel, ConfigurationParameters.DefaultOpacityLevel);

            switch (configurationManager.RetrieveAValue(ConfigurationParameters.ChangeWallpaper, "1"))
            {
            case "0":

                if (Checkers.ThisAppHasReadStoragePermission())
                {
                    WallpaperManager.GetInstance(Application.Context).ForgetLoadedWallpaper();
                    var wallpaper = WallpaperManager.GetInstance(Application.Context).Drawable;
                    WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs {
                        Wallpaper = (BitmapDrawable)wallpaper, OpacityLevel = 0, BlurLevel = 0, WallpaperPoster = WallpaperPoster.Lockscreen
                    });
                }
                break;

            case "1":
                if (Checkers.ThisAppHasReadStoragePermission())
                {
                    WallpaperManager.GetInstance(Application.Context).ForgetLoadedWallpaper();
                    var wallpaper = WallpaperManager.GetInstance(Application.Context).Drawable;
                    WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs {
                        Wallpaper = (BitmapDrawable)wallpaper, OpacityLevel = (short)savedOpacitylevel, BlurLevel = (short)savedblurlevel, WallpaperPoster = WallpaperPoster.Lockscreen
                    });
                }
                else
                {
                    RunOnUiThread(() => Toast.MakeText(Application.Context, "You have set the system wallpaper, but the app can't read it, try to change the Wallpaper option again", ToastLength.Long).Show());
                }
                break;

            case "2":

                var imagePath = configurationManager.RetrieveAValue(ConfigurationParameters.ImagePath, "");
                if (imagePath != "")
                {
                    ThreadPool.QueueUserWorkItem(m =>
                    {
                        Bitmap bitmap           = BitmapFactory.DecodeFile(configurationManager.RetrieveAValue(ConfigurationParameters.ImagePath, imagePath));
                        BitmapDrawable drawable = new BitmapDrawable(Resources, bitmap);
                        WallpaperPublisher.ChangeWallpaper(new WallpaperChangedEventArgs {
                            Wallpaper = drawable, OpacityLevel = (short)savedOpacitylevel, BlurLevel = (short)savedblurlevel, WallpaperPoster = WallpaperPoster.Lockscreen
                        });
                    });
                }
                break;

            default:
                Window.DecorView.SetBackgroundColor(Color.Black);
                break;
            }
        }
示例#29
0
 public static void SetDownloadedImageAsBackground(string urloftheimage)
 {
     ThreadPool.QueueUserWorkItem(async m =>
     {
         var inputStream = new Java.Net.URL(urloftheimage).OpenStream();
         var photograph  = await BitmapFactory.DecodeStreamAsync(inputStream);
         WallpaperManager wallpaperManager = WallpaperManager.GetInstance(Application.Context);
         wallpaperManager.SetBitmap(photograph);
     }
                                  );
 }
示例#30
0
 private void CountView(MonitorWallpaperInformation information)
 {
     if (DateTime.Now - information.LastChanged >= TimeSpan.FromSeconds(30) && information.LastChanged != DateTime.MinValue)
     {
         var currentWallpaper = information.CurrentWallpaper;
         Task.Factory.StartNew(() =>
         {
             WallpaperManager.CountView(currentWallpaper);
         });
     }
 }
示例#31
0
 public static void Main(string[] args)
 {
     rotor = new Rotor();
     //
     changer = new ChangerService();
     rotor.setChangerService(changer);
     //
     wallpaperManager = new WallpaperManager();
     rotor.setWallpaperManager(wallpaperManager);
     //
     rotor.start();
     //
     Application.Init ();
     MainWindow win = new MainWindow ();
     win.Show ();
     Application.Run ();
     rotor.stop();
 }
        private void loadPluginManager()
        {
            Gtk.ListStore store = new Gtk.ListStore (
                typeof (string), typeof (string), typeof(string) );

            plugins.AppendColumn (
                "Title", new Gtk.CellRendererText (), "text", 0);
            plugins.AppendColumn (
                "Author", new Gtk.CellRendererText (), "text", 1);
            plugins.AppendColumn (
                "Description", new Gtk.CellRendererText (), "text", 2);

            WallpaperManager manager = new WallpaperManager();
            foreach(wallpaperService.WallpaperService service in manager.getAllServices())
            {
                store.AppendValues (service.getName(), service.getAuthor(),service.getDescription());
            }

            plugins.Model=store;
            //
        }