Aus einem sichtbaren Fenster kann kein modales gemacht werden



  • Hallo!

    Ich habe einen ganz kuriosen Fehler:

    Ich habe eine Anwendung, die beim Klicken auf Beenden ein Auswahlfenster aufruft: Programm beenden oder Windows herunterfahren.
    Wenn ich "Programm beenden" anwähle, schließt sich die Anwendung wie gewollt. Wähle ich "Windows herunterfahren", dann erscheint die Meldung "Aus einem sichtbaren Fenster kann kein modales gemacht werden". Ich habe aber im Quellcodeabschnitt zum Herunterfahren keinen Aufruf "ShowModal()". Hier nochmal ein Codeausschnitt:

    if (RadioButton_ProgEnd->Checked == true)
        {
            Form_Passwd->ShowModal();
            Close();
        }
        else
        {
            int button = Application->MessageBox(Form_Main->AS_MeldungBeenden[1].c_str(), Application->Title.c_str(), MB_YESNO+MB_ICONQUESTION);
            if (button == IDYES)
            {
                Form_Main->SchreibeIniFile();
    
                HANDLE hToken;
                TOKEN_PRIVILEGES tkp;
    
                // Get a token for this process.
                if (!OpenProcessToken(GetCurrentProcess(),
                    TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken));
    
                // Get the LUID for the shutdown privilege.
                LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
                    &tkp.Privileges[0].Luid);
    
                tkp.PrivilegeCount = 1;  // one privilege to set
                tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    
                // Get the shutdown privilege for this process.
                AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
                    (PTOKEN_PRIVILEGES)NULL, 0);
    
                // Shut down the system and force all applications to close.
                if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0));
            }
            else
            {
                Close();
            }
        }
    

Anmelden zum Antworten