![]() |
cmd mit Befehl
kann mir jemand kurz helfen? wie kann ich den cmd (normal: ShellExecute) öffnen, das dort schon etwas eingegeben ist und sich dann auch gleich startet?
|
Re: cmd mit Befehl
Moin, das geht so:
Delphi-Quellcode:
Nachtrag: Herzlich willkommen!
ShellExecute(0, 'open', 'cmd.exe', PAnsiChar('Hier Dateiname mit dazugehörigen Parametern etc.'), nil, SW_SHOW);
|
Re: cmd mit Befehl
Zitat:
|
Re: cmd mit Befehl
Zu beachten is noch, dass cmd der Parameter /K bzw. /C übergeben werden muss, damit der Befehl auch ausgeführt wird...
mfg Christian |
Re: cmd mit Befehl
hmmmm es funktioniert einfach nicht:
Delphi-Quellcode:
mit nil statt 'open' funktionierts auch nicht...
var pcname,text:String;
pcname:=Edit1.Text; text:=RichEdit1.Text; ShellExecute(0, 'open', 'cmd.exe /C',PChar('net send '+pcname+' '+text), nil, SW_SHOW); //(bzw. SW_HIDE) kann mir jemand helfen??? |
Re: cmd mit Befehl
Hi.
So gehts:
Delphi-Quellcode:
var
pcname, text : String; begin pcname := Edit1.Text; text := RichEdit1.Text; ShellExecute(Application.Handle, 'open', 'cmd.exe', PChar('/C net send ' + pcname + ' ' + text), nil, SW_SHOW); end; |
Re: cmd mit Befehl
Hallo,
wenn du die Ausgabe der CMD noch auswerten willst, könnte dich ![]() Gruß, ManuMF |
Re: cmd mit Befehl
Hi
Ich hab auch mal eine Frage dazu: Ich finde die Idee mit dem 'Shellexecute' ja gut, aber ich hab das Problem, dass ich bei diesem Code wie er von waldteufel da steht die Fehlermeldung erhalte 'zuviele Parameter'. Ich weiß einfach nicht, wie man 'Shellexecute' am anfang deklariert. Kann mir da wer helfen? |
Re: cmd mit Befehl
Zitat:
![]() PS: Schönen Gruß von Aken nach Dessau. |
Re: cmd mit Befehl
Mhh, das war eigentlich gar nicht meine Frage, aber trotzdem Danke.
Mir geht es darum, dass ich das 'ShellExecute' ja bevor ich mit dem eigentlichen Code anfange deklarieren muss.
Delphi-Quellcode:
So heißt ja die Zeile im Code. Wenn ich 'ShellExecute' nicht als Funktion deklariere, ist die Fehlermeldung
ShellExecute(Application.Handle, 'open', 'cmd.exe', PChar('mein Code'), nil, SW_SHOW);
unbekannte Funktion. D.h. ich muss es am Anfang als Funktion deklarieren. Mein Code ist:
Delphi-Quellcode:
Bitte nicht lachen, der ist einfach nur falsch. Aber ich weiß weder, was 'open' bzw. 'cmd.exe' noch 'nil', oder SW_SHOW vom Typ her sind. Ich würde also, falls das irgendwer weiß, gerne wissen, was für Typen (string, und so weiter) das sind.
function Shellexecute(const Handle:HWND; item:string; system:PansiChar; windows:string; SW_SHOW:string):string;
Wenn ich als Funktion nur 'ShellExecute' schreibe, kommt die Fehlermeldung 'zuviele Parameter'. Schönen Gruß von Dessau nach Aken zurück |
Re: cmd mit Befehl
Zitat:
Zitat:
Schon mal das probiert:
Delphi-Quellcode:
Könnte helfen.
uses
ShellAPI; Trotzdem nochmal ne Antwort auf deine Frage: Welchen Typ welcher Parameter hat, kannst du im PSDK nachgucken. Das wären in dem Fall: 'open' = PChar nil = Pointer(0) = PChar('') SW_SHOW Integer(oder cardinal? :gruebel:; müsst ich jetzt auch nachgucken) PChar ist n Pointer auf n Null-Terminierten string im Speicher, deshalb gilt: nil = Pointer(0) = PChar(''). Warum muss man nun PChar nehmen und kann keine strings verwenden? C++ kennt keine strings(jedenfalls nicht so, wie wir die kennen). D.h. man muss sich n string selbst "nachbauen", als n Pointer, der auf ne Stelle im Arbeitsspeicher zeitgt. Findet man irgendwo dann n #0(ASCII-Zeichen), gilt der string da als "terminated" --> Stringende... Da ShellExecute ne WinAPI-Funktion ist und die WinAPI in C/C++ geschrieben ist, muss man eben konvertieren... mfg Christian |
Re: cmd mit Befehl
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz