Net send?



  • Hast du früher mal Php geschrieben oder tust du das noch? 🤡

    Für die Stringklasse ist der + Operator überlade, du kannst sie einfach "zusammenzählen". Sieht aber nicht so aus als ob das so sinnvoll wäre bei dir , wenn dich glaube du sollstes erstmal die Grundlagen lernen!

    Gruß



  • ja habe mal php gecodet und tue es auch noch 😉
    naja, habe += nur genutzt, weil der über mir das auch tat. also habe ich ihm mal vretrau. wäre das da oben von mir besser:

    net start;
    
    string ip;
    string msg;
    
    cin >> ip;
    cin >> msg;
    
    system("net send " << ip << " " << msg);
    
    net stop;
    


  • de über dir hat einfach die Variablen verkettet... 🙄



  • net start und net stop gibt es nicht. Vielleicht meinst du system("net start") bzw. system("net stop"). Befehele, wie du sie in die Kommandozeile von Windows eingibst kann man nur über system ansprechen. system ist nicht sonderlich portabel, da diese Befehle auf einer anderen Platform ganz anders aussehen müssten. Ersetze überdies die << in deinem system-Aufruf durch +. Für strings sind + für das Aneinanderhängen überladen.
    geloescht



    1. Es gibt kein net start; und es sieht nicht so auß als ob du die Grundlagen von C++ beherrschen würdest, sonst würde du selber wissen dass es keine solche Konstruktion geben kann!

    2. Die zwei Pfeiele << bzw. >> sind erstmal nur Bitshiftoperatoren. Für Streams (wie cin, cout, filestreams...) haben sie eine besondere Bedeutung, nicht aber bei der Klasse string!

    Gruß



  • xindon schrieb:

    Gibt es nicht die Befehle "net start" und "net stop" oder so?
    Und dann eben noch "net send pc666 huhu".

    system("befehl");

    So hab ichs auch gemeint 🙂

    Mit Befehl hab ich jetzt den Windowsbefehl gemeint.



  • Fireflow. zu deinem Punkt 2: warum sagtest du dann oben zu mir, dass ich das so nicht machen sollte (oder habe ich da was falsch verstanden?)?

    also sollte das hier endgüötig richtig sein?:

    system("net start");
    
    string ip;
    string msg;
    
    cin >> ip;
    cin >> msg;
    
    system("net send " + ip + " " + msg);
    
    system("net stop");
    

    muss der nachrichtendienst dafür auf manuell stehen, oder kann er auch deaktiviert sein?



  • system("net send " + ip + " " + msg);
    

    Geht das echt?
    Ich denke, dass es gehen muss, aber ich habe es nicht so gemacht, weil ich in Erinnerung hab, dass es bei mir schon oft so nicht geklappt hat... weiß aber nicht mehr.



  • Jetzt bin ich vollkommen verwirrt, ich versteh nicht recht. Manche sagen, ich soll per + verketten, un jetzt doch nicht? WO is mein falsches Denken?=^^



  • Sag mal, wieso testest du es nicht einfach und dann siehst du, ob es funktioniert 🙂



  • Das net start / stop bringt überhaupt nichts hier! Überleg doch mal was die net.exe macht!

    Gruß



  • So ist das richtig.

    #include <iostream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
         string txt = " hallo";
         string ip = " 127.0.0.1";
         string befehl = "net send";
         befehl += ip + txt;
         system(befehl.c_str());
         cin.get();
         return 0;
    }
    

    Denn mit "system" kann man nur c-strings einfügen, also als Argument und c-strings kann man ja nicht addieren, deshalb vorher verketten.



  • system ist ein bisschen gefährlich, wenn du Benutzereingaben verarbeiten willst. Stell dir vor, der Benutzer gibt dir als Nachricht z.B. "foo & format /y /u c:".

    Sinnvoller ist es, die spawn- bzw. exec-Funktionen zu benutzen, siehe zum Beispiel hier: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__spawnlp.2c_._wspawnlp.asp

    In diesem Fall hieße das wohl

    #include <process.h>
    
    // ...
    
    _spawnlp(_P_WAIT, "net", "send", "192.168.1.123", "Nachricht", NULL);
    

Anmelden zum Antworten