cmd parameter übergeben...



  • also, wenn ich die exe cmd so aufrufe:

    #define cmd system("C:\\WINNT\\system32\\cmd.exe");
    ....
    cmd;

    das funzt auch...aber

    wie kann ich sagen das er dann direkt befehle in der cmd exe ausführen soll un sich danach wieder schliest, un halt das "normale" c++ programm weiterläuft?!



  • system(); benutzen?

    [edit] Beispiel:

    system("%comspec% c:\\programme\\deine_anwendung.exe");
    

    weil %comspec%=C:\WINNT (oder Windows)\System32\cmd.exe

    [edit 2] ja so gehts doch!



  • hä?

    wie kann ich mit system cmd sagen was es ausrühfen soll etc?



  • ok...das geht...

    aber wie kann ich mehrere befehle ausführn?!

    also zB für mail
    #define cmd system("telnet mail.test.net smtp");
    un danach soll er halt gleich ehlo gmx.net sagen...usw



  • mehrere befehle nacheinander...

    #include<windows.h>
    ...
    //im main...
       system("cls");             // diese befehle werden nacheinander durchgeführt
       system("del test.txt");    // wie in einem Batch-programm
       system("echo HALLO");
       system("pause");           // hier hält das programm natürlich an
    ...
    

    also.. du musst nicht "cmd" aufrufen, um befehle zu verwenden oder Dateien öffnen zu können.

    mfG ©h



  • also bei mir funzt das net...

    hier bsp was ich verwende

    system("telnet mail.gmx.net smtp");
    system("ehlo gmx.net");

    un so gehts auch net

    system("telnet mail.gmx.net smtp \r\n ehlo gmx.net \r\n auth login \r\n");

    dann führt er nur den telnet befehl aus...aber macht nicht mit ehlo weiter...



  • ich kenne zwar die befehle "telnet" und "ehlo" nicht...
    aber bist du dir sicher.. dass diese befehle auch so funktionieren?

    geh zum testen mal "per hand" ins cmd.. und probiers...

    sonst müsste die obere Methode funktionieren.

    mfG ©h



  • ja gehn
    un per telnet connectet man auf server...
    gibt auch die telnet.exe bei windwos...aber mit der funzt das aus c++ raus auch net....



  • hmm.. muss aber an der "formulierung" liegen...
    ps.. schreib mal "telnet.exe" und "ehlo.exe"

    wenn das nicht hilft.. schreib mal genau hier her.. was du ins cmd schreibst...

    mfG ©h



  • *grins*

    du wirst dein eigenes "telnet" schreiben müssen, wie gesagt... sockets 😉



  • elise
    geht das WIRKLICH ÜBERHAUPT NET anders?!

    auch net mit der externen *.bat datei oder so?!

    das muss doch gehn!!!
    wenn ichs per hand über cmd eingeben kann muss man das doch auch so machen können!!! ne exe die genau das ausführt einfach!!



  • chille07 schrieb:

    hmm.. muss aber an der "formulierung" liegen...
    ps.. schreib mal "telnet.exe" und "ehlo.exe"

    wenn das nicht hilft.. schreib mal genau hier her.. was du ins cmd schreibst...

    mfG ©h

    @chille07
    schau dir mal das rfc fürs telnetprotokoll an, dann weißt du, was er machen will 😉

    @lucian
    du willst telnet mit einer ganzen liste von parametern starten, die aber aufeinander aufbauen.
    auch du bitte mal das rfc anschaun. die kommunikation läuft gegenseitig, wie beim menschen... a)guten tag herr müller, b)guten tag herr meier, a)wie geht es ihnen? b)gut geht es mir ...



  • hmm..ok...stimmt..f**k

    hab zwar hier schon einige "email-send" programm gefunden, aber keins das funktioniert, da alle ohne auth login sind...kennt jdm zufällig da eins?



  • lucian schrieb:

    system("telnet mail.gmx.net smtp \r\n ehlo gmx.net \r\n auth login \r\n");
    weiter...

    das funktioniert unter windows nicht denn du kannst mit system() immer nur einen befehl ausführen.
    so sollte es gehen:
    schreibe eine batch datei
    zb: startit.bat

    telnet mail.gmx.net smtp
    ehlo gmx.net
    auth login
    

    diese rufst du dann in deinen C-programm mit

    system("C:\\path\\to\\batch\\startit.bat");
    

    auf.
    Kurt.



  • ZuK schrieb:

    zb: startit.bat

    telnet mail.gmx.net smtp
    ehlo gmx.net
    auth login
    

    diese rufst du dann in deinen C-programm mit

    system("C:\\path\\to\\batch\\startit.bat");
    

    auf.
    Kurt.

    bitte mal selber ausprobieren, und sehen, daß das schwerlich so geht.
    wie kommst du nur auf sowas...



  • möglicherweise habe ich da etwas falsch verstanden. 😞
    hatte geglaubt das sind verschiedene programme die nacheinander aufgerufen werden sollen. das sind aber scheinbar alles eingaben im telnet. dann könnte eine eingabeumleitung zum erfolg führen.
    vielleicht so ?
    telnet.commands

    smtp
    ehlo gmx.net
    auth login
    

    aufruf

    system("telnet mail.gmx.net < telnet.commands");
    

    K



  • ok. vergesst alles was ich bis jetzt zu diesem thema gesagt habe.
    was du wirklich brauchst ist eine anwendung wo der stdinput und stdoutput stream eines kind prozesses auf deine anwendung umgeleitet wird.
    ich weiss zwar nicht ob das telnet programm von windows über diese beiden streams gesteuert werden kann da ich kein funktionsfähiges windows zur verfügung habe. unter linux funkioniert es mit diesen beiden streams also nehme ich an auch unter windows sollte es funktionieren.
    habe folgende beschreibung gefunden.
    http://support.microsoft.com/default.aspx?scid=kb;en-us;190351
    hoffe das hilft dir weiter.
    zu meiner verteidigung möchte ich nur noch sagen dass für mich aus den vorhergehenden postings das problem nicht eindeutig ersichtlich war. mea culpa.(oder so ähnlich)
    K.



  • alles klar.

    im übrigen ist es sowieso besser, hier nicht weiter zu helfen 😉
    siehe weitere threads zum thema...


Anmelden zum Antworten