public static IntPtr GetWorkerW() { IntPtr progman = User32Wrapper.FindWindow("Progman", null); User32Wrapper.SendMessageTimeout(progman, 0x052C, new IntPtr(0), IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out IntPtr unusefulResult); IntPtr workerw = IntPtr.Zero; var enumWindowResult = User32Wrapper.EnumWindows(new EnumWindowsProc((tophandle, topparamhandle) => { IntPtr p = User32Wrapper.FindWindowEx(tophandle, IntPtr.Zero, "SHELLDLL_DefView", IntPtr.Zero); if (p != IntPtr.Zero) { workerw = User32Wrapper.FindWindowEx(IntPtr.Zero, tophandle, "WorkerW", IntPtr.Zero); return(false); } return(true); }), IntPtr.Zero); return(workerw); }
internal static IntPtr GetWorkerW() { _progman = User32Wrapper.FindWindow("Progman", null); User32Wrapper.SendMessageTimeout(_progman, 0x052C, new IntPtr(0), IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out IntPtr unusefulResult); var enumWindowResult = User32Wrapper.EnumWindows(new EnumWindowsProc((tophandle, topparamhandle) => { IntPtr shelldll_defview = User32Wrapper.FindWindowEx(tophandle, IntPtr.Zero, "SHELLDLL_DefView", IntPtr.Zero); if (shelldll_defview != IntPtr.Zero) { _workerw = User32Wrapper.FindWindowEx(IntPtr.Zero, tophandle, "WorkerW", IntPtr.Zero); _desktopWorkerw = tophandle; return(false); } return(true); }), IntPtr.Zero); return(_workerw); }
protected override async Task <RenderProcess> StartProcess(ProcessStartInfo info, CancellationToken ct) { var result = await base.StartProcess(info, ct); return(await Task.Run(() => { var p = Process.GetProcessById(result.PId); string title = p.MainWindowTitle; var index = title.IndexOf("cef="); while (index < 0) { p?.Dispose(); p = Process.GetProcessById(result.PId); title = p.MainWindowTitle; index = title.IndexOf("cef="); Thread.Sleep(10); } p?.Dispose(); string handleStr = title[(index + 4)..]; var cefHandle = new IntPtr(int.Parse(handleStr)); var handle = User32Wrapper.FindWindowEx(cefHandle, IntPtr.Zero, "Chrome_WidgetWin_0", IntPtr.Zero); result.ReceiveMouseEventHandle = handle; return result; }));
private static bool Initlize() { _showed = false; IntPtr progman = User32Wrapper.FindWindow("Progman", null); IntPtr result = IntPtr.Zero; User32Wrapper.SendMessageTimeout(progman, 0x052C, new IntPtr(0), IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out result); _workerw = IntPtr.Zero; var result1 = User32Wrapper.EnumWindows(new EnumWindowsProc((tophandle, topparamhandle) => { IntPtr p = User32Wrapper.FindWindowEx(tophandle, IntPtr.Zero, "SHELLDLL_DefView", IntPtr.Zero); if (p != IntPtr.Zero) { _workerw = User32Wrapper.FindWindowEx(IntPtr.Zero, tophandle, "WorkerW", IntPtr.Zero); } return(true); }), IntPtr.Zero); _initlized = result1; return(result1); }