PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eingabeaufforderung/cmd-Befehle?



Happosai
15.05.2004, 21:51
Moinssen!

Wie kann ich also mit welcher Programmiersprache kann ich am einfachsten ein Programm programmieren, dass bestimmte Befehle an cmd sendet z.b. also das ist jetzt nur ein beispiel ^^ Der User gibt irgendwo Hallo ein drückt dann auf senden und dann wird der Befehl: net send * Hallo versendet...Help me

MuadDib
15.05.2004, 21:55
Am allereinfachsten geht das OHNE Programmiersprache, sondern einfach nur indem du eine kleine *.bat-Datei schreibst, in der du alle noetigen Befehle drinnen hast.

Such nach "DOS Batch Tutorials" im Google, da wirst du sicher fuendig (um das ganze dann von ueberall zu starten, gibst du den Ort der Datei einfach in die PATH Variablen mit, so hab ichs mit meinen ls-Batch gemacht, das einfach dir im aktuellen Verzeichnis aufruft ^^)

Ineluki
17.05.2004, 07:33
Ansonsten geht das auch ganz gut mit C(++)



#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv)
{
char cmd[1024];
sprintf(cmd,"net send *");
if (argc>0)
for (int i=1; i<argc; i++)
sprintf(cmd,"%s %s",cmd,argv[i]);
system(cmd);
return 0;
}


Code ist aus dem Gedaechtnis geschrieben. Daher keine Haftung fuer Korrektheit.

Happosai
20.05.2004, 18:59
Wird bei C++ die Eingabeaufforderung für die Befehle geöffnet oder geschieht das im Hintergrund? Ich hätte nämlich lieber im Hintergrund, wenn sich das cmd-Fenster öffnet sieht das ziemlich blöd aus ^^

Und nochwas könnte C++ auch INformationen aus der cmd rausholen..bsp: "tree C:" und das was dabei rauskommt wird nun in eine Variable gesteckt...allerdings wäre das nicht sooo wichtig.

THX

Happosai

Manuel
20.05.2004, 22:30
Das beste, einen DOS- bzw. CMD-Befehl aufzurufen, ist, das selbst aus einer DOS-Sprache zu machen ^^. Ich habe mal schnell einen einfachen Code mit QBasic hingeklatscht, der dein Beispiel behandelt:


' Hier wird nach der Nachricht gefragt und in der Variable
' "Nachricht$" gespeichert:
PRINT "Welche Nachricht soll gesendet werden"
INPUT Nachricht$


' Hier wird nach dem Computernamen gefragt und in der Variable
' "Nummer$" gespeichert:
PRINT "Zu welchem Computer soll gesendet werden"
INPUT Nummer$


' Hier das, was du eigentlich wissen willst ^^. So ruft man mit
' QBasic einen DOS-Befehl auf:
SHELL "net send " + Nummer$ + " " + Nachricht$


' Programm wird beendet:
END

Ist jetzt ziemlich einfach gehalten, hab' etwa 3 Minuten dafür gebraucht ^^. Aber das funktioniert, ich hab's selbst ausprobiert ^^.


Und nochwas könnte C++ auch INformationen aus der cmd rausholen..bsp: "tree C:" Den Befehl "tree" kenne ich nicht, aber wenn es ein DOS-Programm ist, lässt sich einfach jeder Text, der bei diesem Befehl erscheint, statt auf dem Bildschirm in einer Textdatei speichern. Man muss einfach einen Zusatz dranhängen. "> Dateiname.txt". Wenn jetzt also "tree" ein DOS-Befehl ist und du das Erzeugte in der Datei "tree.txt" speichern willst, müsstest du


tree > tree.txt

eingeben bzw. unter QBasic


SHELL "tree > tree.txt"

eingeben, dann müsste es funktionieren.

2. EDIT: Ich betone hier, dass das nur geht, wenn "tree" ein DOS-Befehl ist ^^.
EDIT:
Wird bei C++ die Eingabeaufforderung für die Befehle geöffnet oder geschieht das im Hintergrund? Ich hätte nämlich lieber im Hintergrund, wenn sich das cmd-Fenster öffnet sieht das ziemlich blöd aus ^^ Unter QBasic kann man das auch, man muss halt im Programmende statt "END" einfach ein "SYSTEM" einfügen. Man sieht zwar für einen kurzen Moment das CMD-Fenster aufflackern, verschwindet aber dann sofort, wenn alle Befehle abgearbeitet sind.

Übrigens: Mehrere Tutoriale über DOS (sofern du die *.bat-Möglichkeit nutzen willst) findest du auch auf http://www.antonis.de/dos/index.htm

3. EDIT: Uh, wieviele Edits ich wohl noch hinbekommen werde ^^
Falls du QBasic brauchst... es ist eine Freeware-Programmiersprache, das bekommst du auf www.qbasic.de ^^.