Autor |
Beitrag |
PP-deluxe
      
Beiträge: 17
|
Verfasst: Mo 12.12.05 16:48
Hallo,
wie kann man in Delphi Kommandos in der Konsole ausführen lassen (möglichst so, dass man die Konsole nicht sieht)? Wie heißt der Befehl dazu? Moderiert von raziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 12.12.2005 um 16:16
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 13.12.05 14:51
Moinmoin.
Deine Frage ist etwas ungenau. Falls du einfach Konsolenprogramme wie net o.ä. starten willst, kannst du SHELLEXECUTE verwenden.
coucou,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
s34rch
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 14.12.05 09:26
|
|
yogo
      
Beiträge: 121
Windowse, Linuxe
Delphi 3 Prof., D5 Enterprise, D6 Enterprise, Kylix, Delphi 2010
|
Verfasst: Mi 14.12.05 20:36
Das hat mich neugierig gemacht. Kann man auch an ein Programm/eine Funktion(in meinem Fall net/net send) einen Befehl schicken? So dass man z.B. hat: Windows Net Chat nacricht an: (rechner oder Benutzername) Nachricht: (die nachricht halt)
Vielleicht über Edit Felder die verschiedenen Werte in Strings schreiben und diese dann zusammen mit 'net send' an Run.exe schicken?
Freue mich über jede Antwort!
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Do 15.12.05 14:37
Moinmoin.
@ yogo:
Einfach mal die Forensuche benutzen. NET SEND
Da findest du z.B. diesen Thread mit dieser Funktion von mir:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| uses ShellAPI;
procedure NetSend(AIp, AText: String); begin ShellExecute(0, 'open', 'net', PChar('send ' + AIp + ' ' + AText), nil, SW_HIDE); end; |
coucou,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
yogo
      
Beiträge: 121
Windowse, Linuxe
Delphi 3 Prof., D5 Enterprise, D6 Enterprise, Kylix, Delphi 2010
|
Verfasst: Do 15.12.05 18:19
Supi, *freu*; Doch kannst du mir bitte noch sagen, wie man AIp und AText verwendet?
Ich kenn mich da nicht so aus...
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 15.12.05 18:44
Wied du in der Prozedur sehen kannst sind das einfach nur Parameter also in diesem Fall Variablen vom Typ String. Der Name sagt was inhaltlich erwartet wird.
|
|
yogo
      
Beiträge: 121
Windowse, Linuxe
Delphi 3 Prof., D5 Enterprise, D6 Enterprise, Kylix, Delphi 2010
|
Verfasst: Do 15.12.05 19:00
einfach
Delphi-Quelltext 1:
| var AIp , AText : String |
? Die kann ich dann auch ganz normal definieren(Die Werte, nicht den Typ)?
Also:
Delphi-Quelltext 1: 2:
| Edit1.text := AIp; Edit2.text := AText; |
Das ist ja einfach... thx!!
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 15.12.05 19:59
ja, wenn du das noch umdrehst, dann stimmst :
Delphi-Quelltext 1: 2:
| AIp := Edit1.text; AText := Edit2.text; |
Damit wird dann der Inhalt von Edit1 in AIp gespeichert und
der Inhalt von Edit2 in AText.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Fr 16.12.05 14:31
Moinmoin.
Was erzählt ihr denn da bitte?!  Das ist total kompliziert! Das ist einfach eine Funktion, die zwei Parameter vom Typ String erwartet.
Beispiel: Du willst eine Nachricht "hallo" an 192.168.0.1 schicken.
Delphi-Quelltext 1:
| NetSend('192.168.0.1', 'hallo'); |
coucou,
WeBBy
P.S.:
@ yogo:
Ich würde dir mal (und auch allen anderen, die geantwortet haben), den Crashkurs von Chrissy empfehlen. 
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Fr 16.12.05 15:14
@ WeBsPaCe
Zitat: | Was erzählt ihr denn da bitte?! Das ist total kompliziert! |
Zitat: | Ich würde dir mal (und auch allen anderen, die geantwortet haben), den Crashkurs von Chrissy empfehlen.  |
Also erstmal erzählst du, das wir total kompliziert erzählen, dann empfehlst du uns ein Anfänger-Tutorial.
Irgendwie unlogisch... Kann ein Anfänger denn kompliziert erzählen ?
Zumal ich wenigstens fachlich richtig war :
RICHTIG :
azubi_20 hat folgendes geschrieben: | in der Prozedur |
FALSCH :
WeBsPaCe hat folgendes geschrieben: | Das ist einfach eine Funktion, die zwei Parameter vom Typ String erwartet. |
OK, kann sein, dass ich jetzt etwas übertreibe, aber irgendwie fühle ich mich persönlich angegriffen...
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Fr 16.12.05 19:14
Moinmoin.
azubi_20 hat folgendes geschrieben: | Also erstmal erzählst du, das wir total kompliziert erzählen, dann empfehlst du uns ein Anfänger-Tutorial. Irgendwie unlogisch... Kann ein Anfänger denn kompliziert erzählen ? |
Warum nicht?  Weiß nicht, warum sich das ausschließen sollte.
azubi_20 hat folgendes geschrieben: | Zumal ich wenigstens fachlich richtig war :
(...) |
Jop. Okay.  Da hast du recht. Darf ich zu meiner Verteidigung sagen, dass ich zur Zeit ziemlich viel PHP mach' und es da eben keine Prozeduren gibt?
azubi_20 hat folgendes geschrieben: | OK, kann sein, dass ich jetzt etwas übertreibe, aber irgendwie fühle ich mich persönlich angegriffen... |
Deine Feststellung da oben mit "Funktion" und "Prozedur" war richtig. Ich hab was falsches geschrieben. Du hast auf mich einfach nicht den Eindruck gemacht, dass dir bekannt ist, was eine Prozedur ist, weil deine Antwort einfach nicht dem entsprechend war. Tut mir leid, falls dich das mit dem Anfängertutorial beleidigt hat.
coucou,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
yogo
      
Beiträge: 121
Windowse, Linuxe
Delphi 3 Prof., D5 Enterprise, D6 Enterprise, Kylix, Delphi 2010
|
Verfasst: Mo 19.12.05 22:30
Darf man eigentlich hier streiten, oder muss ein PM-Krieg gestartet werden?
Super Dankeschön für die Antworten!! Es klappt!
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mo 19.12.05 22:48
yogo hat folgendes geschrieben: | Darf man eigentlich hier streiten, oder muss ein PM-Krieg gestartet werden?
Super Dankeschön für die Antworten!! Es klappt! |
Wenns um was Persönliches geht, bitte per PN!
|
|
chip
Hält's aus hier
Beiträge: 1
|
Verfasst: Mi 04.01.06 15:37
Titel: Eierlegende Wollmilchsau
habe gerade eure Artikel zum Thema shellexecute gelesen. Der Befehl is viel zu schade um NUR Netznachrichten darüber zu verschicken.
Einfach mal das kontextmenü auf der Windowsoberfläche, auf irgendeiner Datei aufmachen. (rechte maustaste)
Alles was da steht unterstütz die Funktion shellExecute. Also offnen, drucken, bearbeiten, neu ... u.a. und zwar unabhänig davon ob es sich um ein Programm oder eine Datei handelt. Noch geiler is dann auch das ich darüber hinaus den ganzen Rest von windows mit open öffen kann also Verzeichnisse, Dateien, ftp verzeichisse., emails und was es sonst noch an sinnigem und unsinnigem gibt.
Also wie gesagt eine "Eier legende Wollmichsau"
Mail öffnen
ShellExecute(0, 'open', 'mailto:mailadresse@server.de', '', '', 5)
Datei drucken
ShellExecute(0, 'print', 'C:\testdatei.pdf', '', '', 0)
Verzeichnis öffnen
ShellExecute(0, 'open', 'C:\windows', '', '', 0)
Worddokument aus einer Dokumentenvorlage erstellen
ShellExecute(0, 'new', 'C:\wordvorlage.dot', '', '', 0)
Webseite öffnen
ShellExecute(0, 'open', 'http://www.delphi-forum.de', '', '', 0)
etc.
Mit anderen Worten das ding ist zum blöd werden universel
Gruß chip
|
|
Ghosterer
Hält's aus hier
Beiträge: 5
DOS, Win98, Win2000 prof, Win 2000 Server, Win XP, Win 2003 Server
|
Verfasst: Mo 01.05.06 15:20
@chip:
Habe deine Anregung aufgenommen und versucht, ein PDF-File auszudrucken.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| program PdfDruck;
{$APPTYPE CONSOLE}
uses ShellApi;
begin ShellExecute(0, 'print', 'C:\test.pdf', '', '', 0) end. |
Der Acrobat-Reader öffnet sich, das Dokument wird angezeigt, aber dann bekomme ich eine Fehlermeldung vom Reader "Dieser Vorgang ist nicht zulässig".
Gibt es eine Möglichkeit, über eine Konsolenanwendung mehrere Pdf-Dateien (z. B. Rundschreiben???.pdf) auszudrucken, ohne den Drucker zu kennen? Die Rundschreiben also incl. Exe an verschiedene Systeme (mit unterschiedlichen Druckern) übertragen und dann über einen Task (if exist Rundschreiben???.pdf PdfDruck.exe) auszudrucken? Dummerweise sind leider nicht nur unterschiedliche Drucker (div. Hersteller, Lokal und auch Netzwerkdrucker) sondern auch noch unterschiedliche Versionen des Readers im Einsatz (5-7), so dass es auch keinen fixen Pfad zur AcroRd32.exe gibt.
Wäre echt super, wenn es für dieses Problem eine Lösung gäbe.
|
|
|