Das active fenster finden



  • Hallo

    kann mir jemand sagen mit welcher function ich das active fenster finden kann. Also ich habe das Handle vom Fenster und wenn es active wird soll mein programm was machen. Welche function brauche ich?

    Danke



  • ich denke da gibts mehrer funktionen die dir diehnlich sein können.
    GetForegroundWindow / GetActiveWindow / GetWindowPlacement

    in jedem fall must du das ganze aber in eine schleife packen und permanenet abfragen wann eben ein fenster in den fordergrund tritt. in einen thread solltest du das dann auch verpacken, sonst macht dein programm nix anderes mehr.

    dabei fällt mir ein WaitForSingleObject bzw. WaitForMultipleObjects dürfte in verbindung, auf ein fenster zu warten, recht hilfreich sein...



  • Danke für die Antwort habe das mit Foreground Window gemacht und habe eine While endlosschleife eingebaut aber das Programm hängt sich dann auf. wie mache ich den einen Thread?

    Gruss



  • sonst macht dein programm nix anderes mehr.

    😉

    *.h

    UINT thrFunction		(LPVOID pParam);
    
    BOOL m_TorF;
    

    *.cpp

    void StartThread()
    {
        m_TorF = TRUE;
        AfxBeginThread(thrFunction,hWnd);
    }
    
    UINT thrFunction(LPVOID pParam)
    {
    
        HWND hWndFind = (HWND)pParam;
    
        FindForgroundWnd(hWndFind);
    
       return 0;
    }
    
    void FindForgroundWnd(HWND hWnd)
    {
        do
        {
            if(hWnd == GetForegroundWindow())
            {
                //mach was
            }
            Sleep(1000);//Pausiere
        }while(m_TorF);
    }
    

    erklärt sich glaube ich von selbst.

    ansonsten gibts da noch CreateThread mit der hab ich aber noch nicht gearbeitet bzw. auf die schnelle ein beispiel zur hand. auf der seite ganz unten gibts aber nen link zu einem beispiel.



  • Hallo, hab die eine Email gesendet.

    Gruss


Anmelden zum Antworten