Filedialog braucht 5 Sekunden bis zum Öffnen



  • Hi,

    ich habe hier ein sehr seltsames Problem mit einem stinknormalen Dateidialog:

    OPENFILENAME       ofn;
    
       memset(&ofn,0,sizeof(ofn));
       ofn.lStructSize = sizeof(ofn);
       ofn.hwndOwner =(HWND)parent->GetHandle(); // handle auf ein verstecktes window
       wcsncpy(file,data->loadFile->c_str(),MAX_TEXT_SIZE);
       ofn.lpstrFile=file;
       ofn.nMaxFile =MAX_TEXT_SIZE;
       ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST;
       if(GetOpenFileName(&ofn))
       {
       ...
    

    Kein sehr spannender Code, aber von der Stelle an, an der ich GetOpenFileName() aufrufe bis zu dem Augenblick, zu dem der Dialog tatsächlich aufgeht, vergehen locker mal 5-8 Sekunden.

    Das System selber ist nicht ausgelastet, es frisst keiner Rechenzeit und die Dateidialoge von anderen Programmen funktionieren schneller (allerdings weiß ich nicht, welche Funktion die hernehmen). OS ist Windows 7.

    Hat jemand eine IDee, was da los sein könnte? Jeder Denkanstoß ist willkommen!

    DikDik!



  • Vermute mal, das wird an Netzlaufwerken liegen. Lösung fällt mir jetzt keine ein, aber vllt. hilft google.



  • Hm.
    Versuchs mal mit nem Handle auf ein nicht verstecktes Fenster.
    Oder alternativ mal mit hwndOwner = NULL.
    BTW: wieso der Cast nach HWND ( ofn.hwndOwner =(HWND)parent->GetHandle() )? Was gibt parent->GetHandle() denn zurück?


  • Mod

    Wenn ich den Debugger offen habe, dann dauert es bei mir auch sol lange durch die immense Anzahl der DLLs die nachgeladen werden.


Anmelden zum Antworten