Entwickler-Ecke

Windows API - cmd.exe unter Delphi leiten


shr00m - Mi 09.05.07 18:10
Titel: cmd.exe unter Delphi leiten
folgendes problem: ich starte cmd.exe mit ShellExecute, das hab ich ja hingekriegt, is ja auch nich sooo schwierig, nur wie kann ich dann dem cmd-menü Befehle erteilen die es ausführen soll? Mal für das Beispiel das mir dann das CommandMenü die net user auflistet!

Danke im voraus! :)


jakobwenzel - Mi 09.05.07 18:17

Wenn du als Parameter /c oder /k angibst kannste dahinter Befehle angeben, die ausgeführt werden.
Einziger Unterschied ist, dass bei /k die Konsole geöffnet bleibt, während sie bei /c nach Abarbeitung geschlossen wird.


shr00m - Mi 09.05.07 18:31

oh, thx.. ich häts mir schwieriger vorgestellt ^^


shr00m - Mi 09.05.07 19:10

wollt nur nochmal spaßenshalber fragen...


Delphi-Quelltext
1:
ShellExecute(Handle,nil,'C:\Windows\system32\cmd.exe',('/k net send XXX YYY'),nil,1);                    


kann mans auch irgendwie realizieren, ('/k net send XXX YYY') in eine Schleife zu packen, ohne das sich das CommandMenü mehrmals öffnet. Also mehrere Befehle in ein Fenster?

Ich will nix unanständiges damit anstellen versprochen ^^

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


Chryzler - Mi 09.05.07 19:23

Nachrichten über den Nachrichtendienst versenden läßt sich auch einfacher, ohne Net Send machen. Dafür gibt es nämlich eine eigene Funktion in netapi32.dll, NetMessageBufferSend. Vielleicht steht sogar was hier im Forum dazu, ansonsten schau einfach bei MSDN nach.
EDIT: Hier [http://www.delphi-forum.de/viewtopic.php?t=4144] hat user profile iconLuckie eine wunderschöne NetSend-Prozedur geschrieben. Die brauchst du nur noch abtippen, oder, wenn es ganz schnell gehen muss, kannste du auch Copy&Paste verwenden.