internal void ShowWallpaper(IntPtr wallpaperHandle) { IntPtr hostForm = IntPtr.Zero; WallpaperApi.UIInvoke(() => { try { Controls.Clear(); Opacity = 1; hostForm = Handle; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"ShowWallpaper ex:{ex}"); } }); //hostfrom下潜桌面 WallpaperHelper.GetInstance(_screenName).SendToBackground(hostForm); //壁纸parent改为hostform User32Wrapper.SetParent(wallpaperHandle, hostForm); //把壁纸全屏铺满 hostform WallpaperHelper.FullScreen(wallpaperHandle, hostForm); }
public async Task ShowWallpaper(WallpaperModel wallpaper, params uint[] screenIndexs) { if (_renderProcess == null || _renderProcess.HasExited) { var renderAPIPort = NetworkHelper.GetAvailablePort(8080); _api = new WebRenderAPI("http://*****:*****@"WebRender\livewallpaperwebrender.exe"); _renderProcess = Process.Start(path, $"--hostPort={renderAPIPort}"); } HostInfo info = await _api.GetInfo(); while (info == null || !info.Initlized) { await Task.Delay(1000); info = await _api.GetInfo(); } var hosts = await _api.ShowWallpaper(wallpaper, screenIndexs); foreach (var scIndex in screenIndexs) { IntPtr windowHandle = hosts[scIndex]; WallpaperHelper.GetInstance(scIndex).SendToBackground(windowHandle); } }
public Task ShowWallpaper(WallpaperModel wallpaper, params uint[] screenIndexs) { foreach (var index in screenIndexs) { var process = Process.Start(wallpaper.Path); // 刚创建的进程可能无法获取到MainWindowHandle属性,所以延时两秒保证属性获取正常 Thread.Sleep(2 * 1000); WallpaperHelper.GetInstance(index).SendToBackground(process.MainWindowHandle); // 设置要接受鼠标消息的窗口的句柄 mouseEventReciver.HTargetWindow = process.MainWindowHandle; } return(Task.CompletedTask); }
internal void ShowWallpaper(Control control) { IntPtr windowHandle = IntPtr.Zero; this.InvokeIfRequired(() => { Controls.Clear(); control.Dock = DockStyle.Fill; Controls.Add(control); Opacity = 1; Refresh(); windowHandle = Handle; }); WallpaperHelper.GetInstance(_screenIndex).SendToBackground(windowHandle); }
public async Task ShowWallpaper(WallpaperModel wallpaper, params int[] screenIndexs) { if (_renderProcess == null || _renderProcess.HasExited) { var renderAPIPort = GetAvailablePort(9000); _renderProcess = Process.Start("", renderAPIPort.ToString()); } foreach (var scIndex in screenIndexs) { IntPtr windowHandle = await GetHostFromRemote(scIndex); WallpaperHelper.GetInstance(scIndex).SendToBackground(windowHandle); } throw new System.NotImplementedException(); }
internal void ShowWallpaper(Control control) { Load += RenderHost_Load; Show(); Application.DoEvents(); Controls.Clear(); control.Dock = DockStyle.Fill; Controls.Add(control); Update(); //Invalidate(); //await Task.Delay(200); Opacity = 1; Refresh(); WallpaperHelper.GetInstance(_screenIndex).SendToBackground(Handle); }
internal void ShowWallpaper(Control renderControl) { IntPtr windowHandle = IntPtr.Zero; WallpaperManager.UIInvoke(() => { try { Controls.Clear(); renderControl.Dock = DockStyle.Fill; Controls.Add(renderControl); Opacity = 1; Refresh(); windowHandle = Handle; } catch (Exception ex) { } }); WallpaperHelper.GetInstance(_screenIndex).SendToBackground(windowHandle); }