CurrentDir Change, Programm via "Drag&Drop" geöffnet



  • Hallo,

    habe in meinen Programm eingebaut das man quasi via Pfadübergabe in argv (mit Drag&Drop Dateien auf Programmicon fallen lassen :D) entsprechend sofort damit arbeiten kann.
    Allerdings wird dadurch der currentDir geändert (Windows XP: homeverzeichnis "Dokumente....") und FileOpen (mit "./") Funktionen schlagen dadurch fehl "No Such File or Dictionary". Starte ich normal per "Doppelklick" dann hat er auch den richtigen currentDir.

    Hat jemand eine Idee woran das liegt? Ändert er den Pfad weil er Temporär irgendwas erzeugen muss ?

    Man kann zwar über argv[0] den eigentlichen currentDir wieder setzen aber das ist ja auch nur so ne provisorische Lösung und wieso sich der ändert weiß ich dadurch auch nicht.

    Hoffe jemand hat ne Vermutung wieso er den Ändert.

    mfg

    Spy

    ---

    Hier zum "schnellen" Test nen Codeschnipsel(wollte nur den Codetag mal nutzen :P):

    ...
    ...
    ...
    int main(int argc, char *argv[])
    {
    
        QApplication a(argc, argv);
    //    MainWindow w;
        QDir currentDir = QDir::current();
    
        QString info = currentDir.currentPath().toAscii() + " " + QString::fromAscii(argv[0]) + " " + QString::fromAscii(argv[1]) + " " + QString::fromAscii(argv[2]);
        QMessageBox::information(NULL, "Here",info);
    
    //    currentDir.setCurrent("C:\\C++ QT\\FTPUpload-build-desktop\\debug\\");
    
    //    w.show();
        return a.exec();
    }
    
    ...
    ...
    

Anmelden zum Antworten