Anwendung in den Vordergrund setzen



  • Hallo,

    ich möchte gerne meine Anwendung in den Vordergrund setzen, wenn die Anwendung schon gestartet wurde.

    bool pobjIOwnMutex = false;
    
    System::Threading::Mutex^ pobjMutex = gcnew System::Threading::Mutex(true, "Pullman", pobjIOwnMutex);
    
    if(pobjIOwnMutex == true)
    {
    	Application::Run(gcnew Form1());
    }
    else
    {
    	MessageBox::Show(_mainForm->Text);
    	//pobjMutex->ReleaseMutex();
    	Application::Exit();
    	//Application::Restart();
    }
    

    In den Else-Zweig soll dann die Anwendung nach vorne geholt werden.

    Kann mir jemand helfen?

    Gruß,

    Felice



  • Am besten via gidf.de nach "Single Instance" suchen...



  • Hilft mir nicht wirklich weiter.
    Aber trotzdem vielen dank.



  • Ich komme einfach nicht weiter.
    Kann mir keiner helfen????
    😮



  • Dieser Code würde mir helfen, nur wie bekomme ich ihn in C++/CLI zum laufen?

    //Als externe Methode deklarieren...
    [DllImport("User32.dll")] static extern long SetForegroundWindow(int hwnd);
    
    //Und einfach aus einer Form heraus aufrufen...
    private void abInDenVordergrund()
    {
          int hwnd = this.Handle.ToInt32();
          SetForegroundWindow(hwnd);
    }
    

    Kann mir bitte jemand helfen?

    Felice



  • Wenn's auch WinAPI sein darf:

    SetWindowPos(GetSafeHwnd( ),
                 HWND_TOPMOST,
                 0,
                 0,
                 100,
                 100,
                 SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);
    

    Damit mach's ich immer.



  • Danke _Seep für die Antwort.

    Muss ich da noch was einfügen, so funzt das nicht in der C++/CLI.


Log in to reply