Programm per Remote starten/beenden



  • Hallo,

    wie könnte ich mit C++Builder ein Programm (z.B. notepad.exe) auf einem anderen Rechner im Netzwerk (LAN) starten oder beenden?



  • klar kann man das



  • Du musst auf dem entfernten Rechner ein Serverprogramm installieren, das dann auf Verbindungen von deinem Client wartet. Bei bestimmten vom Client empfangenen Codes, die du dir selbst ausdenken kannst, startet der Server dann z.B. per ShellExecute eine Anwendung auf dem entfernten Rechner.



  • Welche Komponente könnte ich zur Realisierung eines solchen Server- und Clientprogrammes unter C++Builder6 (Enterprise Edition) benutzen? Woher kann ich nähere Infos bekommen?



  • Benutze ClientSocket und ServerSocket unter dem Reiter Internet, damit
    ist es leicht Texte zu versenden. Deine Befehle könnten dann z.B. so
    aussehen: #do -open -Notepad

    Schau dir das Chat Beispiel im Example->Internet Ordner mal an, so in
    der Art wäre das möglich.

    gruß Micha



  • TIdTCPServer/TIdTCPClient aus dem Indy-Paket sind mit der SendCommand-Funktion und den zugehörigen Comand-Handlern ggf. auch einen Blick wert.



  • Nimm die Socket-Variante, denn die kommen durch jede FireWall, vorausgesetzt, dass ein Programm dahinter auf deine Befehle wartet.



  • Windoof schrieb:

    Nimm die Socket-Variante, denn die kommen durch jede FireWall, vorausgesetzt, dass ein Programm dahinter auf deine Befehle wartet.

    Das versteh ich jetzt nicht.

    Es gibt eigentlich überhaupt NUR die Variante über Sockets. Und ob du damit durch FWs kommst oder nicht hängt absolut nicht vom Wrapper sondern eigentlich ausschliesslich von der FW ab.

    -junix



  • OK; ich meine Software-Firewalls, es sei denn du sperrst den kompletten Verkehr... Es hängt schon davon ab: Socket != TCP. Solange ein Programm auf der Server-seite wartet, kommst du durch jede Firewall, ansonsten wird das Paket einfach verworfen, und der Server bekommt eine Meldung, dass versucht wurde, auf ihn zuzugreifen. Wartet ein Programm darauf und nimmt das Paket an, so wird keine Meldung vergeben... bei keiner Software-Firewall. Bei TCP und den anderen Protokollen, die der BCB zu bieten hat, schon. Kannst es ja mal ausprobieren...



  • ...ich möchte ja keinen von deinen Aufsätzen lesen...

    1. Irgendwie schnall ich immer noch nicht was du mir sagen wolltest. Sockets ist nix aus dem BCB, das ist was Systemhaftes. Gibts unter Solaris genau so wie unter *BSD oder Mac OS. Was ich einfach weiss ist, dass der BCB und die Indy-Kompos die System API für die Sockets kapseln.
    2. Worin liegt für die Applikation der Unterschied zwischen SW- od. HW-Firewall.
    3. Würds mich interessieren was für Protokolle du fahren willst um die FW zu umgehen
    4. Normalerweise werden bei SoftwareFirewalls keine Meldungen an irgendwelche Rechner (wie z.B: den Server) versendet sondern der Benutzer hat normalerweise ein Infofenster. Von was für eine SW-FW sprichst du?

    -junix


Anmelden zum Antworten