getforegroundwindow (user32)
Last changed: -70.130.76.223

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

VB Signature:

<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function GetForegroundWindow() As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

public ApplicationState AppState

{

    get
    {
        Process[] processCollection = Process.GetProcessesByName(ProcessName);
        if(processCollection != null && processCollection.Length  >= 1 &&
            processCollection[0] != null)
        {
            IntPtr activeWindowHandle = Win32.GetForegroundWindow();
            foreach(Process wordProcess in processCollection)
            {
                if(wordProcess.MainWindowHandle == activeWindowHandle)
                {
                    return ApplicationState.Focused;
                }
            }
            return ApplicationState.Running;
        }
        return ApplicationState.NotRunning;
    }

}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation