Fenster in Vordergrund



  • Hallo,
    ich habe ein kleines Problem. Ich habe ein Programm bei dem ich verhindern möchte das man es zweimal starten kann. Das klappt auch sehr gut. Jetzt soll nur wenn das Prog schon gestartet ist und man versucht es nochmal zu starten es in den Vordergrund kommen. So wie ich es bisher habe klappt das aber nur wenn as Prog minimiert ist. Wie bekomme ich das hin das es auch in den Vordergrund kommt wenn es nicht minimiert ist sonder nur unter einem anderen Fenster?
    Mein Code:

    WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR, int)
    {
            try
            {
                    HANDLE hMutex=OpenMutex(MUTEX_ALL_ACCESS,0,"MeinProgramm");
                if(!hMutex)
            {
                    hMutex=CreateMutex(0,0,"MeinProgramm");
            }
                else
            {
    
                    HWND hWnd=FindWindow(0,"NetSend");
                            ShowWindow(hWnd,SW_RESTORE);
                          //  SwitchToThisWindow(hWnd,false);
                            return 0;
            }
    
                     Application->Initialize();
                     Application->Title = "NetSendBomber";
                     Application->HelpFile = "C:\\WINNT\\Profiles\\Wegner\\Desktop\\Hilfe\\Help.hlp";
                     Application->CreateForm(__classid(TForm1), &Form1);
                     Application->CreateForm(__classid(Tpass), &pass);
                     Application->CreateForm(__classid(TAbout), &About);
                     Application->CreateForm(__classid(TForm4), &Form4);
                     Application->CreateForm(__classid(TForm5), &Form5);
                     Application->Run();
    
                     ReleaseMutex(hMutex);
    
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;
    }
    


  • Hast du schon folgende Funktionen ausprobiert:
    SetForegroundWindow
    BringWindowToTop
    vielleicht auch eine davon:
    SetWindowPlacement
    SwitchToThisWindow



  • Ja danke es klappt jetzt.
    Ich hatte es ganz früher schon mal mit SetForegroundWindow probiert aber es ging nicht.
    Jetzt habe ich eine Kombination aus SetForegroundWindow und ShowWindow und das klappt. 😃
    Die anderen Funktionen brachten auch nicht den gewünschten Effekt.

    Thx



  • Hallo Herr Arbeitskollege warum bist du immer Anonym unterwegs????
    Naja bis Montag denn in der Schule, aber man sieht sich ja auch über ICQ ;))
    (Neee schon wieder AE bei Schumann, *ratzzzzzzzzz* JavaScript is soooooo langweilig) ...

    [ Dieser Beitrag wurde am 14.03.2003 um 20:06 Uhr von code_pilot editiert. ]


Anmelden zum Antworten