Pfad herausfinden



  • Hallo,

    ich habe überall gesucht, aber nichts gefunden.
    Ich muss mit meinem C++ Programm ein anderes Programm (.exe) öffnen.
    Kann den Pfad aber nicht angeben. Da er sich als ändert.
    Mit was für einem Befehl kann ich dieses exe Programm auf dem PC suchen,
    den Pfad herausfinden und dann starten?



  • Also eine *.exe kannst du hiermit starten:

    AnsiString Pfad = "C:\\meinprogramm.exe";
    RunApplication(Pfad.c_str(), 0);
    

    Das Suchen der exe wird wohl das schwerste sein. Da müsstest du wahrscheinlich alle Ordner rekursiv durchsuchen.
    Stichwort dazu ist "FindFirstFile". Dazu findest du genügend Beiträge hier im Forum.



  • Wozu willst du denn eine Anwendung suchen?

    Wenn sie bei Windows registriert ist, kannst du es über die Registry versuchen.
    Wenn die andere zu startende Applikation auch von dir programmiert wird/wurde, kannst du ihr Verzeichnis auch irgendwo in einer config-Datei ablegen, die sich dann natürlich immer am selben Ort befinden muss. Aus dieser Config kannst du dann den Ort deiner Applikation auslesen und selbige starten.



  • Schau Dir FindFirst/FindNext an.
    Oder überdenke Dein Konzept nochmal; wieso sollte sich ein Programm jedes mal in einem anderen Pfad befinden?



  • Hallo

    Wie schon gesagt sind FindFirst/FindNext die Funktionen, die du brauchst, um eine Datei zu suchen. Allerdings must du, um alle Verzeichnisse zu durchsuchen, einen rekursiven Ablauf einprogrammieren, der je nach Umfang des Dateibestandes merkbar Laufzeit braucht. Und auch dann kannst du nicht sicherstellen, das die richtige Datei gefunden wird.
    Am besten ist es, den Benutzer einmalig mit einem TOpenDialog die Datei auswählen zu lassen, und den ermittelten Pfad in der Registry oder in einer Konfigurationsdatei zu speichern.

    bis bald
    akari



  • Das Problem ist, das es unsere Technikerarbeit ist. Wir programmieren einen Prüfablauf, während diesem Prüfablauf muss ein anderes Programm von der Firma gestartet werden. Dieses Programm ist bei jedem auf dem PC oder Labtop aber je nachdem kann sich der Pfad ändern.



  • Dann wäre es wert zu prüfen, ob sich das andere Programm in der Registry einen Eintrag mit dessen Pfad angelegt hat und diesen entsprechend auszulesen; andernfalls die OpenDialog-Methode von akari


Log in to reply