Пример #1
0
        public bool PostThreadMessage(UInt32 msg, IntPtr wParam, IntPtr lParam, bool ensureTargetThreadHasWindow = true)
        {
            uint   targetThreadId = 0;
            IntPtr hwnd           = Handle;

            if (ensureTargetThreadHasWindow)
            {
                uint processId = 0;
                if (hwnd != IntPtr.Zero)
                {
                    targetThreadId = Win32Helpers.GetWindowThreadProcessId(hwnd, out processId);
                }
            }

            if (targetThreadId != 0)
            {
                return(Win32Helpers.PostThreadMessage(targetThreadId, msg, wParam, lParam));
            }
            else
            {
                return(false);
            }
        }