Der Pfad ändert sich bei Lauf des Programmes



  • hallo,

    habe eine Dialoganwendung, bei der ich mit

    GetCurrentDirectory(1000,chPfad);
    

    in einem Dialog den Instalaationspfad auslese, um später mit ShellExecute in einem anderen Dialog ein ExcelSheet in dem gleichen Pfad zu öffnen...

    zwischenzeitlich wird aber in einem Dialog dazwischen mit

    CFileDialog m_ldFile(TRUE," ",NULL,OFN_HIDEREADONLY,"exe(*.exe)|*.exe||);
    if (m_ldFile.DoModal()==IDOK)
    {
    usw
    

    dem Benutzer die Möglichkeit gegeben, was dazuzuladen...

    Wenn ich das Programm debugge und die Strings angucke, dann funktioniert das beim erstenmal alles einwandfrei,
    wenn der Benutzer allerdings auf wiederholen drückt und der erste Dialog wieder GetCurrentDirectory aufruft, uist der Inhalt des Strings der Pfad der Zwischenzeitlichaufgerufenen Exe, wieso denn das???

    GetCurrentDirectory liest denke ich den installationspfad des main programmes aus, oder, muss ich da noch was einfügen?



  • füge den zusätzlichen Parameter:
    OFN_NOCHANGEDIR
    in den Aufruf von CFileDialog ein:

    CFileDialog m_ldFile(TRUE," ",NULL,OFN_HIDEREADONLY|OFN_NOCHANGEDIR,"exe(*.exe)|*.exe||);
    

    dann ändert sich das Directory nicht mehr...

    Greez 😃



  • habe jetzt auch endlich ´was in der suche gefunden, war nur zu blöd zum eingeben....

    es geht also nicht mit getcurrentdirectory!!!



  • habe jetzt von MATT
    [url] http://www.c-plusplus.net/forum/viewtopic.php?t=65004&highlight=getcurrentdirectory[/url]
    etwas gefunden...

    m_pfad = GetCommandLine();           // Pfad + Name der Exe holen 
    int pos = m_pfad.ReverseFind( '\\'); // letztes '\' finden 
    m_pfad = m_pfad.Mid(1, pos-1) + "\\test.exe"; // Name der Exe abtrennen
    

    aller dings trennt er mir den namen der exe nicht ab...



  • Klar trennt er dir den Namen deiner .exe ab. Schon mal auf die Idee gekommen dieses + "\\test.exe" wegzulöschen? Dann hast du den genauen Pfad wo sich deine .exe drin befindet und kannst dann weiterarbeiten...



  • Directory schrieb:

    GetCurrentDirectory liest denke ich den installationspfad des main programmes aus, oder, muss ich da noch was einfügen?

    Nein, siehe MSDN.

    Bye, TGGC (Denken, und gut ist.)



  • habe es thx...

    m_pfad = GetCommandLine();           // Pfad + Name der Exe holen 
    int pos = m_pfad.ReverseFind( '\\'); // letztes '\' finden 
    m_pfad = m_pfad.Mid(1, pos-1);// Name der Exe abtrennen
    

Anmelden zum Antworten