示例#1
0
        public static void SpawnWorker()
        {
            IntPtr progman = ProgmanHandle;

            IntPtr result = IntPtr.Zero;

            WindowNative.SendMessageTimeout(progman, WM_SPAWN_WORKER, IntPtr.Zero, IntPtr.Zero, WindowNative.SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out result);
        }
示例#2
0
        private static IntPtr FindDesktopArea()
        {
            IntPtr desktopAreaHandle = IntPtr.Zero;

            WindowNative.EnumWindows((IntPtr hWnd, IntPtr lParam) =>
            {
                if (FindListViewWrapperHandle(hWnd) != IntPtr.Zero)
                {
                    desktopAreaHandle = hWnd;
                }

                return(true);
            }, IntPtr.Zero);

            return(desktopAreaHandle);
        }
示例#3
0
 private static IntPtr FindListViewHandle(IntPtr listViewHandle)
 {
     return(WindowNative.FindWindowEx(listViewHandle, IntPtr.Zero, "SysListView32", null));
 }
示例#4
0
 private static IntPtr FindListViewWrapperHandle(IntPtr desktopAreaHandle)
 {
     return(WindowNative.FindWindowEx(desktopAreaHandle, IntPtr.Zero, "SHELLDLL_DefView", null));
 }
示例#5
0
 private static IntPtr TryFindWorker(IntPtr handleAfter)
 {
     return(WindowNative.FindWindowEx(IntPtr.Zero, handleAfter, "WorkerW", null));
 }