Exemplo n.º 1
0
        public void SwitchWindow()
        {
            if (MemoryApi.GetForegroundWindow() == MainWindowHandle)
            {
                return;
            }

            IntPtr foregroundWindowHandle = MemoryApi.GetForegroundWindow();
            uint   currentThreadId        = MemoryApi.GetCurrentThreadId();
            uint   temp;
            uint   foregroundThreadId = MemoryApi.GetWindowThreadProcessId(foregroundWindowHandle, out temp);

            MemoryApi.AttachThreadInput(currentThreadId, foregroundThreadId, true);
            MemoryApi.SetForegroundWindow(MainWindowHandle);
            MemoryApi.AttachThreadInput(currentThreadId, foregroundThreadId, false);

            while (MemoryApi.GetForegroundWindow() != MainWindowHandle)
            {
            }
        }