Befehl zum öffnen eines anderen Programms



  • Vielleicht sowas:
    system("start c:/Programme/Mozilla/Firefox/firefox.exe");//Bin gerade zu faul, den Pfad rauszusuchen
    Oh, hdda klingt dann doch ein wenig unwindowsig.
    system("/usr/bin/firefox");

    Und falls Dein Buch Dir wirklich globale Variablen und <string.h> beigebracht hat, wirf es schnell weg. Sogar, wenn Jürgen Wolf drauf stehen würde.



  • Nein kein Buch sondern Lehrer...:D
    Und ich mache die Ausbildung jetzt seit 2 Monaten.
    Ich denke das der Lehrer uns nur zeigt was alles geht
    deshalb die globalen Variablen.

    Was meinste denn damit?

    Oh, hdda klingt dann doch ein wenig unwindowsig.

    und bei dem Befehl system sagt er mir das der nicht deklariert ist...



  • Als Fachinformatiker solltest Du Dir aber ganz schnell die richtigen Begrifflichkeiten aneignen. Ein Programm öffnet man nicht, sondern man führt es aus. Und was meinst Du mit "Festplatte A: öffnen"?

    Überhaupt werden Festplatten nur unter Windows mit Buchstaben bezeichnet. Aber ich fürchte, dass ein Fachinformatiker eher ein Spezialist für ein Betriebssystem eines einzelnen Herstellerst ist. So ist die Welt halt.



  • Hi

    Als Fachinformatiker solltest Du Dir aber ganz ....

    Fachinformatiker???
    Ich bin seit 2 Monaten in der Ausbildung zu einem Informatiker.
    Meinste ich bin mit einem Buch zum beispuiel IT-Systeme zur Welt gekommen?
    Ganz sicher nicht und du auch nicht also erzähl mir bitte kein Qutsch.
    Auf meine Fragen hast du auch nicht geantwortet daher war dein Kommentar völlig fehl am Platz
    Danke für nichts tntnet....



  • tntnet schrieb:

    Als Fachinformatiker solltest Du Dir aber ganz schnell die richtigen Begrifflichkeiten aneignen. Ein Programm öffnet man nicht, sondern man führt es aus.

    Ach, manchmal öffne ich sie auch.

    tntnet schrieb:

    Und was meinst Du mit "Festplatte A: öffnen"?

    Ist im Kontext auch völlig klar.
    Ah, im Code steht, daß er Windows benutzt.

    tntnet schrieb:

    Überhaupt werden Festplatten nur unter Windows mit Buchstaben bezeichnet.

    Komisch. Ist /dev/hda sehr unbuchstabig? Im Code das hdda sah fast so aus.

    Ich schiebs mal nach WinApi, damit ihm jemand ShellExecute vorschlagen kann. Damit kriegt man auch prima Festplatten auf.



  • Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ (auch C++0x, bzw. C++11) 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.



  • chewee schrieb:

    Hi

    Als Fachinformatiker solltest Du Dir aber ganz ....

    Fachinformatiker???
    Ich bin seit 2 Monaten in der Ausbildung zu einem Informatiker.
    Meinste ich bin mit einem Buch zum beispuiel IT-Systeme zur Welt gekommen?
    Ganz sicher nicht und du auch nicht also erzähl mir bitte kein Qutsch.
    Auf meine Fragen hast du auch nicht geantwortet daher war dein Kommentar völlig fehl am Platz
    Danke für nichts tntnet....

    Ach bitte schön. Gern geschehen. Und Danke für Deine "freundliche" Antwort.

    Was ich mit meinem Kommentar erreichen wollte, war eigentlich eine Anregung, mal darüber nachzudenken. Ich bin selbst Linux-Anwender und finde es einfach schade, dass sich solche Windows-Denkweisen eingebürgert haben. Noch immer habe ich die Hoffnung nicht aufgegeben, dass wenigstens ein Informatiker mal lernt, dass es neben Windows noch was anderes gibt. Es war einfach ein Tipp, aber wenn Du das als "nichts" ansiehst und beleidigt bist, wenn ich auf Deine Frage nicht antworte, dann tut mir das leid.



  • Mir ist durchaus bewusst das es noch andere Betriebssysteme gibt.
    Aber ich habe diese anwendung ja für mich geschrieben
    und ich benutze hier zuhause nun mal windows
    da bringt es mir nichts das ich weiß wie die festplatte bei linux heißt.

    So zurück zum Thema:

    Ich habe es jetzt hinbekommen
    allerdings nur dur neuinstallation von firefox
    der installatinspfad darf keine leerzeichen enthalten.
    Hat jemand ne Ahnung wie ich dem Kompiler klar machen kann das nach dem Leerzeichen bei C:\Program (x86)\.... noch nicht zu ende ist?



  • Den Aufruf in Hochkommata einfassen.



  • Den Aufruf in Hochkommata einfassen.

    Wie meinst du das?
    Ich habe es einmal so probiert:

    system("start 'C:/Program/Mozilla/firefox.exe'");
    

    so:

    system'("start C:/Program/Mozilla/firefox.exe")';
    

    und so:

    'system("start C:/Program/Mozilla/firefox.exe'")';
    

    funktioniert alles nicht



  • 1. Verwende SHellExecute
    2. Pfad-Trenner ist \
    2. Bist Du sicher, dass es den Pfad gibt?



  • Achso so \ und nich so / is klar:D
    nur falsch abgetippt...
    Ja den Pfad gibt es auf jeden fall.
    Hmm Shellexecutor klingt nach was neues (für mich)
    deswegen lass ich das erstmal.
    Wird in der Ausbildung sicherlich noch ran kommen.
    Wär nett wenn "DocShoe" nochmal weiter auf sein kommentar eingehen würde.



  • Ein Backslash \ in einem C Source Code (z.b. in Strings) wird für gewöhnlich als "\" verwendet.
    Also so:

    "C:\\Program\\Mozilla\\firefox.exe"
    

    HTH,
    Martin

    Übrigens, wie hast Du es geprüft, ob der Pfad tatsächlich da ist?
    Weil der Pfad "C:\Program\..." gibt es genau so nämlich nicht (jedenfalls nicht bei default Windows Installationen) 🕶



  • Mmacher schrieb:

    Übrigens, wie hast Du es geprüft, ob der Pfad tatsächlich da ist?
    Weil der Pfad "C:\Program\..." gibt es genau so nämlich nicht (jedenfalls nicht bei default Windows Installationen)

    Ne den Ordner hab ich extra angelegt.

    system("start A:\bla bla\LuH.exe");
    

    so sieht jetzt der Versuch aus, leider vergebens.

    Und das ist die Fehlermeldung:

    "A:◘la" konnte nicht gefunden werden.Stellen Sie sicher.....



  • Hallo chewee,

    so hat es keinen Sinn.
    Wir wissen nicht, wie Deine Pfade aussehen. Also die genaue Bezeichnung des angelegten Pfads. Und die genaue Bezeichnung des Strings in Deinem Source-Code.

    Am besten, poste nochmal Deinen Code (letzter Stand) hierher. Dann sehen wir wie Du versuchst auf den Pfad zuzugreifen.
    Übrigens: Bitte kopiere den Pfad rein, nicht abtippen! Wir sind schon so oft auf solche banalen Anfängerfehler reingefallen.

    chewee schrieb:

    "A:◘la" konnte nicht gefunden werden.Stellen Sie sicher.....

    Das ist für mich ein klarer Hinweis darauf, daß Du meinen Text vorhin nicht richtig gelesen hast!
    Nochmal die Preisfrage: Wie gebe ich als C-Programmierer den Backslash in den String ein? 😡

    Martin



  • So...

    #include<iostream>
    #include <stdlib.h>
    using namespace std;
    char w;
    void openfirefox()
    {
        [b]system("start A:\bla bla\LuH.exe");[/b]
    }
    
    void openhddA()
    {
        system("start A:");
    }
    
    void openhddG()
    {
        system("start G:");
    }
    
    int main()
    {
        while(w!='4')
        {
            cout << "\n\tHallo Nico\n";
            cout << "Was moechtest du tun? \n";
            cout << "(1) Firefox oeffnen...\n";
            cout << "(2) Festplatte A: oeffnen...\n";
            cout << "(3) Externe Festplatte oeffnen...\n";
            cout << "(4) Beenden!\n\t";
            cin  >> w;
            switch(w)
            {
                case '1':
                    openfirefox();
                    break;
                case '2':
                    openhddA();
                    break;
                case '3':
                    openhddG();
                    break;
                case '4':
                    cout <<"\n\tAuf Wiedersehen!\n";
                    break;
            }
        }
    
    }
    

    und das was Fett gedruckt ist da steht

    system("start A:\bla bla\LuH.exe");
    

    und bei "bla bla" ist ein Leerzeichen.
    Und wenn ich das Prog ausführen will und ich die nummer 1 eintippe
    kommt ein fenster mit der Fehlermeldung:

    "A:◘la" konnte nicht gefunden werden.Stellen Sie sicher.....

    Nun leider lassen sich manche Pfade nicht mehr ändern ohne Neuinstallation.
    Also wie sage ich dem Kompiler das bei dem Leerzeichen nicht schluss ist sondern erst wenn die Zeile zuende ist oder so?



  • chewee schrieb:

    system("start A:\bla bla\LuH.exe");
    

    system("start \"A:\*bla bla\*LuH.exe\"**");

    Escape-Sequenz



  • system("start \"A:\*bla bla\*LuH.exe\"**");



  • basics schrieb:

    chewee schrieb:

    system("start A:\bla bla\LuH.exe");
    

    system("start \"A:\*bla bla\*LuH.exe\"**");

    Escape-Sequenz

    Das klappt nicht



  • chewee schrieb:

    Das klappt nicht

    du Ärmster!


Anmelden zum Antworten