Programm in vordergrund holen



  • hallo community

    ich habe ein simples programm geschrieben
    es ist einfach ein popup, der dem nutzer eine info übergibt

    nun soll dieses fenster aber nicht mehrmals erscheinen, sondern nur einmal
    wenn der nutzer nochmal einen aufruf des popups verursacht, dann soll die bereits geöffnete instanz in den vordergrund geholt werden

    aber wie kann ich das bewerkstelligen

    ich hab es mit findwindow probiert aber der popup wird damit wohl nicht erkannt, zumidnest funktioniert es so nicht
    hier der quelltext bisher:

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
    {
    	char *psMutexName = "UBnomail";
        char *text = "Mailversand ist über diesen Computer nicht möglich!\r\nBitte nutzen sie ihr eigenes Mailkonto (z.B. GMX, web.de)";
        char *titel = "Information";
    
    	CreateMutex(NULL, true, psMutexName);
    	if(GetLastError() == ERROR_ALREADY_EXISTS)
    	{
    		HWND hWndFirst = FindWindow(titel, NULL); 
            BringWindowToTop(hWndFirst); 
            SetForegroundWindow(hWndFirst);
    		return -1;
    	}
        MessageBox(NULL, text, titel, MB_OK | MB_ICONWARNING);
        return 0;
    }
    

    mfg
    Michael Richter



  • FindWindow kann das Fenster nicht finden, weil (zumindest in dem Code oben) die Parameter falschrum übergeben werden.

    Richtig wäre: Erst NULL, dann Titel

    HWND hWndFirst = FindWindow(NULL, titel);
    


  • *handandenkopfklatsch*

    das wars
    dank dir


Anmelden zum Antworten