Wie kann ich eine bestimmte atei im betimmten Verzeichnis öffnen?



  • Gut, ich dachte, dass du eine Datei öffnen willst und den Inhalt anzeigen willst.
    Ansonsten würde ich auch ShellExecute nahmen. Und wieso kannst du mit dem Code von Tim06TR keine Beliebigen Exe-Datein öffen? Bei mir klappt es:

    ShellExecute(NULL, NULL, "C:\\MeinVerzeichenis\\Programm.exe",  NULL,  NULL,  SW_SHOWNORMAL);
    


  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Jochen S. schrieb:

    Gut, ich dachte, dass du eine Datei öffnen willst und den Inhalt anzeigen willst.
    Ansonsten würde ich auch ShellExecute nahmen. Und wieso kannst du mit dem Code von Tim06TR keine Beliebigen Exe-Datein öffen? Bei mir klappt es:

    ShellExecute(NULL, NULL, "C:\\MeinVerzeichenis\\Programm.exe",  NULL,  NULL,  SW_SHOWNORMAL);
    

    Ich möchte es aber mit Eingabe machen. Ich habe einen Code versucht und schon wieder: Es öffnet wieder im selben Verzeichnis!

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    
    int main()
    {
        string d;
        cin >> d;
        d += ".exe";
        ShellExecute(NULL, NULL, "C:\\",  NULL,  NULL,  SW_SHOWNORMAL);
        system(d.c_str());
        return 0;
    

    Was habe ich da falsch gemacht?



  • Der ShellExecute-Aufruf muss so aussehen:

    ShellExecute(NULL, NULL, d.c_str(),  NULL,  NULL,  SW_SHOWNORMAL);
    

    Der System-Aufruf muss da ganz weg.
    Und bei der Eingabe keine Backslashes verwenden.
    Du musst natürlich den ganzen Pfad eingeben.

    PS: Du solltest dir wiklich mal die Grundlagen aneignen.



  • WAS MEINST DU MIT GRUNDLAGEN?? IMMER GRUNDLAGEN...Ich kann doch die Grundlagen!!!!Aber nicht die Fortgeschrittene Grundlagen(Ich bin so Halb-Fortgeschritten)



  • Immer noch nicht...."gähn" 😞 😞

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    
    int main()
    {
        string d;
        cin >> d;
        d += ".exe";
        "C:\\";
        ShellExecute(NULL, NULL, d.c_str(),  NULL,  NULL,  SW_SHOWNORMAL);
        return 0;
    }
    

    Was habe Ich da Falsch gemacht. Der kompiliert alles, keine Fehler, aber dann das! Noch schlimmer: es öffnet garkeine Datei!

    PS:
    "C:\" ist der Pfad. Aber die \ müssten da sein, sonst wäre ja unmöglich gewesen, den Pfad zu finden!



  • 1. Du kannst KEINE Grundlagen. (siehe Zeile 11)
    2. Dass er keine Datei Öffnet, wundert mich micht.

    So sieht der Code richtig aus:

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    
    int main()
    {
        string d;
        cin >> d;
        d = "C:\\"+d+".exe";
        ShellExecute(NULL, NULL, d.c_str(),  NULL,  NULL,  SW_SHOWNORMAL);
        return 0;
    }
    


  • Okay, vielleicht nur die baby Grundlagen. Mein erstes C++ Buch war:
    easy C++ von MartUndTechnik.



  • Das öffnet schon, aber nicht im gleichem Fenster!



  • Aber mit system() öffnet es im gleichem Fenster!



  • Wenn du das im gleichen Fenster haben willst, musst du das so schreiben:

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    
    int main()
    {
        string d;
        cin >> d;
        d = "call C:\\"+d+".exe";
        system(d.c_str());
        return 0;
    }
    


  • Das weiß ich schon, aber ich habe eine andere Frage:
    Wie kann ich die Dateien von einem Ordner auflisten, die was aber nicht im gleichen Verzeichnis liegen.Also:

    ...
    system("cd c:\"");
    system("dir c:");
    cout << endl;
    ...
    

    Funktioniert nicht. Warum?



  • hab gelöst:

    ..
    system("dir cd c:\");
    ...
    

  • Mod

    sebastianfox schrieb:

    hab gelöst:

    ..
    system("dir cd c:\");
    ...
    

    Dir fehlt es aber scheinbar an jeder Grundlage, wenn ich mir diesen Code ansehe. 👎



  • Was meinste damit?



  • geh und friss was giftiges



  • Wieso sollte ich mich vergiften? Ich kapituliere... 😡 😡 😞 😞 ⚠ ⚠ Einfach nur Cyber-Mobbing... 😞 😞 ⚠



  • Du solltest dir einfach mal Einsteiger tutorials lesen (zB. www.c-programmieren.com), genau lesen und selber anfangen einfache Programme zu programmieren.
    Aber vielleicht liegt dir C oder Programmierung einfach nicht. Dann kann man da wenig machen.


  • Mod

    Martin Richter schrieb:

    sebastianfox schrieb:

    hab gelöst:

    ..
    system("dir cd c:\");
    ...
    

    Dir fehlt es aber scheinbar an jeder Grundlage, wenn ich mir diesen Code ansehe. 👎

    sebastianfox schrieb:

    Was meinste damit?

    Das will ich Dir gene erklären.

    dir cd c:\
    

    Ist einfach Unfug. Es mach keinen Wechsel in irgenein Verzeichnis. Es macht ein Dir auf eine Datei mit Namen CD im aktiuellen Verzeichnis. Anschließend ein DIR auf C:\!
    Bei Dir scheinen so viele Grundkenntnisse zu fehlen, dass Du evtl. wonaders mit dem Lernen anfangen solltest.



  • also nochmal, bin zwölf jahre alt gerade geworden. Ich habe mir ein Buch gekauft: C++ Programmieren mit einfachen Beispielen" von DIRK LOUIS. So eigene "write" oder andere einfache Programme kann schon schreiben. Aber möchte weiter kommen. Möchte für mich (just for fun) ein System schreiben. Habe einfach keine Ahnung wo ich anfangen soll. Wie ich mich weiter helfen soll. Was für Bücher kaufen etc. Vielleicht könnte mit hier helfen bei die Suche. Sorry auch für meine Fragen, weiß die sind nicht so gut aber will unbedingt was machen. Es ist meine einzige Hobby seit 6 Monate und mag das. In meine Realschule kennt sich niemand aus. Sorry nochmal für meine Fragen. Seba.


Anmelden zum Antworten