Datei im eigenen Ordner ausführen



  • hallo,

    ich würde gern eine .doc datei im Ordner in dem sich meine Programm-exe befindet öffnen. Ich vermute mal dass es mit ShellExecute geht, jedoch weiss ich nicht wie ich ihm sagen soll, dass sich die datei in meinem Ordner Programmordner befindet ohne ihm einen Pfad geben zu müssen.

    Sinn der Sache: ich möchte das gesamte Programm mit seinem Ordner verschieben können und das Öffnen der .doc datei soll trotzdem noch funktionieren

    vielen dank für eure Hilfe

    mfg, TFTS



  • Wenn du nicht irgendwo im Programm das Verzeichnis wechselst, ist das Verzeichnis, wo die Exe liegt auch dein Arbeitsverzeichnis und somit musst du nur den Dateinamen angeben. 😃

    Achtung: Wenn du mit F5 startest, klappt das erst nachdem du ein Arbeitsverzeichnis in den Eigenschaften eingegeben hast, das sollte den Debug/Release Ordner sein.
    Sonst nimmt er das Verzeichnis wo der dsw liegt. ⚠



  • wenn ich mein Programm direkt über den Explorer öffne funktioniert es leider nicht. ich habe zwar in anderen Funktionen mittels GetDocument() das Arbeitsverzeichnis verändert, aber das dürfte doch aber eigentlich keinen einfluss haben oder?

    danke schonmal

    mfg, TFTS



  • Doch, klar hat das Einfluß. Sobald du das Verzeichnis wechselst passt es ja nicht mehr.



  • und wie kann ich das da jetz noch regeln ohne einen Pfad angeben zu müssen? Die andere Arbeitsverzeichnis Änderung brauch ich ja auch unbedingt





  • Hol dir einfach den aktuellen Pfad deiner Exe und dann setze die andere Exe hinten dran :

    CString strPath = CString( GetCommandLine()).Mid( 1, CString(GetCommandLine()).ReverseFind('\\')-1); 
    
    CString strRealPath;
    strRealPath.Format("%s%s", strPath, "\\Test.exe");
    
    WinExec(strRealPath, SW_SHOW);
    

    Jetzt findet deine Exe den Pfad zum Ordner und öffnet die andere Exe ..

    Gruß
    :: NoName ::


Anmelden zum Antworten