Utilisation GetForegroundWindow résultat dans une instruction if pour vérifier l'utilisateur de la fenêtre en cours

J'ai besoin de vérifier ce que la fenêtre de l'utilisateur actuellement sélectionné, et faire des trucs si ils ont un programme spécifique sélectionné.

Je n'ai pas utilisé le GetForegroundWindow fonction avant, et ne pouvez pas trouver toute l'information sur la façon de l'utiliser de cette manière.

J'ai simplement besoin d'un si la comparaison de la fenêtre actuelle pour voir si c'est un programme spécifique. Cependant, le GetForegroundWindow fonction n'est pas de redonner un string ou int, il me semble. Donc, surtout, je ne sais pas comment trouver la valeur de la fenêtre du programme, je tiens à le comparer.

J'ai actuellement le code pour obtenir la fenêtre en cours:

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

    IntPtr selectedWindow = GetForegroundWindow();

J'ai besoin d'être en mesure de l'appliquer comme suit dans l'idéal:

    If (selectedWindow!="SpecificProgram")
    {
        <Do this stuff>
    } 

J'espère que la GetForegroundWindow valeur/objet est unique pour chaque programme et n'est pas fonction d'une certaine manière que chaque programme/fenêtre a des valeurs différentes à chaque fois.

Je suis également faire cela dans le cadre d'un formulaire windows bien que j'en doute des questions.

-Merci pour toute aide

Edit: Cela fonctionne, et utilise le carreau de la fenêtre en cours, ce qui le rend parfait pour vérifier si la fenêtre est juste facilement:

        [DllImport("user32.dll")]
        static extern IntPtr GetForegroundWindow();
        [DllImport("user32.dll")]
        static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);

        private string GetActiveWindowTitle()
        {
            const int nChars = 256;
            StringBuilder Buff = new StringBuilder(nChars);
            IntPtr handle = GetForegroundWindow();

            if (GetWindowText(handle, Buff, nChars) > 0)
            {
                return Buff.ToString();
            }
            return null;
        }

et puis je peux le faire:

        if (GetActiveWindowTitle()=="Name of Window")
        {
            DoStuff.jpg 
        }
Vous pouvez ensuite appel de plate-forme GetWindowThreadProcessId pour obtenir l'ID de processus du IntPtr de GetForegroundWindow. Une fois que vous avez un ID de processus, vous pouvez l'examiner avec la classe de Processus.
Voir ce stackoverflow.com/questions/7268302/....
Qui obtient juste une liste de toutes les fenêtres n'est-ce pas, j'ai besoin de pour obtenir uniquement la fenêtre actuellement sélectionnée. Sauf que je suis absent quelque chose, parce que tout simplement "si(processus.MainWindowTitle=="le Programme X")" serait formidable.
Utiliser en conjonction avec @vcsjones soupçon.
Connaissez-vous le titre de la fenêtre que vous souhaitez trouver?

OriginalL'auteur bob | 2014-08-29