Working Directory von Programm



  • Hallo zusammen,
    Ich habe folgendes Problem: Ich habe ein Programm, dass bei jedem Systemstart gestartet werden soll.
    Zu diesem Zweck hab ich in der Registry mein Programm eingetragen. Das Programm soll ein paar Textdateien erstellen und ein weiteres Programm starten.
    Das Programm starte ich so: ShellExecute(NULL,"open","Prog.exe",NULL,NULL,NULL);
    Das Programm beendet sich auch sofort wieder. Bis hier hin ist alles gut. Was nicht funktioniert:

    - Starten des anderen Programms (das andere Programm läuft nicht)
    - Erstellen der Textdatei.

    Hat das Programm ein anderes Working Directory als den eigenen Ordner?
    Oder gibt es da eventuell noch andere Fehlerquellen?

    Mein OS: Windows Vista Home Premium (falls das relevant ist)

    Bin für jede Hilfe dankbar.


  • Mod

    1. Gib den gesamten Pfad an, des Programmes das gestartet werden soll.
    2. Bei Problemen mit ShellExecute schau Dir das Ergebnis von GetLastError an.
    3. Bist Du sicher, dass Du in das Verzeichnis schreiben darfst, in der die Textdatei angelegt werden soll.

    Arbeitest Du mit absoluten Pfaden oder mit relativen?



  • In der Registry hab ich den kompletten Pfad angegeben, das Programm startet auch, das Funktioniert auch soweit.

    In dem Programm selbst arbeite ich nur mit relativen Pfaden.
    Schreibberechtigung hab ich auch, wenn man das Programm manuell startet, tut es ja, was es soll.

    gibt es irgendwelche Funktionen, mit denen ich das Working-Directory ermitteln kann?


  • Mod

    GetCurrentDirectory:
    http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx

    BTW: Du solltest relative Pfade vermeiden... gerade in diesem Fall!



  • Vielen Dank 🙂


Log in to reply