Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfänger:Befehl z.b.an cmd.exe zusammenfassen und übergeben? (https://www.delphipraxis.net/47721-anfaenger-befehl-z-b-cmd-exe-zusammenfassen-und-uebergeben.html)

SlowDown 15. Jun 2005 12:00


Anfänger:Befehl z.b.an cmd.exe zusammenfassen und übergeben?
 
Hallo, bin neu hier und hab eigentlich nur mit html was zu tun, drum tu ich mich mit der Syntax arg schwer. Bin gerade heute dabei mir etwas zusammenzupfrimlen für den hausgebrauch, komm aber nicht ganz klar.

habe eine kleine Programmoberfläche, mit der ich über Button Befehle an cmd, ping, netsh etc.. abgeben möchte..
hab nach langem lesen heute einen kleinen erfolg erzielt, der jedoch geradezu jämmerlich ist,

Code:
begin

 ShellExecute(
  hInstance, 'open', ('cmdoderpingusw.exe'),
  '/output:meinpfad.htm process get /format:htable ',
  nil,SW_SHOW );
 ShellExecute(
  hInstance, 'open', ('cmdoderpingusw'),
  '/output:meinpfad.htm service get /format:htable',
  nil,SW_SHOW );
end;
wie man sieht will ich mehrere Befehle zum abarbeiten übergeben, habs aber nur so hinbekommen,
was natürlich Blödsinn ist.
Ich würde es gerne zusammenkapseln, 4 5 6 Befehle hintereinander und dann soll das Ding wieder zugehen,und nur 1 Instanz soll natürlich angesprochen werden...
Desweiteren springt das Dosfenster kurz auf, kann ich das umgehen?? das stört..also der "lass dich bloss nicht blicken befehl" ;-)

Ausserdem versuch ich noch ne Funktion zu basteln, das man z.b. in ein editfeld nen Prozess angibt, und den dann mit dem taskkill von win abschießt, funzt das denn irgendwie?? Dann muss ich auf den virenverseuchten PCs zukünftig nimme solange in der command rumwursteln..
vielen Dank im Voraus..

Have a sunny Day...

jfheins 15. Jun 2005 14:12

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Zitat:

Zitat von SlowDown
Desweiteren springt das Dosfenster kurz auf, kann ich das umgehen?? das stört..also der "lass dich bloss nicht blicken befehl" ;-)

Rate mal, was passieren könnte, wenn du als letzten Parameter SW_HIDE statt SW_SHOW angibst ;)

SlowDown 15. Jun 2005 15:00

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
jetzt wollt ich grad sagen das ich das schon probiert hab, weil ich doch so bauernschlau bin und es dann net ging, hab aber grad bemerkt, das ich SHOW_HIDE geschrieben hab, ist natürlich net so der bringer..gg*
Danke...
Zum Rest hat keiner ne Ahnung? ich mag ungern ne batch datei aufrufen um des problem zu lösen ;-)

r2c2 15. Jun 2005 15:22

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Zitat:

Zitat von SlowDown
Zum Rest hat keiner ne Ahnung? ich mag ungern ne batch datei aufrufen um des problem zu lösen ;-)

Was is denn so schlimm sich ne Batch anzulegen, die auszuführen und anschließend wieder zu löschen? is doch das Einfachste.

mfg

Christian

SlowDown 15. Jun 2005 15:47

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Gegenfrage: Bin ich im Batch Forum oder im Delphi Forum?

freak4fun 15. Jun 2005 15:49

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Na, na. Habt euch lieb. :mrgreen:

Ich denke ShowDown wird seine Gründe haben. Und wenn er sie dir nicht sagen möchte musst du das akzeptieren, genauso wie ShowDown akzeptieren muss, das du keine bessere Lösung als eine Batchdatei hast. :thumb:

MfG
freak

r2c2 15. Jun 2005 16:18

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Zitat:

Zitat von freak4fun
Na, na. Habt euch lieb. :mrgreen:

Keine Angst wir werden uns schon nicht auffressen. :mrgreen:

Zitat:

Ich denke ShowDown wird seine Gründe haben. Und wenn er sie dir nicht sagen möchte musst du das akzeptieren,
Akzeptiert. :lol:

Zitat:

genauso wie ShowDown akzeptieren muss, das du keine bessere Lösung als eine Batchdatei hast. :thumb:
Das muss er nicht unbedingt. :wink: Ich habs zwar noch nicht ausprobiert, aber könnte man nicht cmd ausführen und alle weiteren Befehle als Parameter anhängen?

mfg

Christian

xineohp 15. Jun 2005 16:45

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
hi,

wo genau liegt den jetzt das Problem? Du möchtest mehrere Befehle abschicken? Sind die Befehle jeweils an das gleiche Programm gerichtet oder an verschiedene? Sind die Befehle voneinander abhängig, d.h. der erste ist zB. ein Login und der zweite der eigentliche Befehl?

Solange die Befehle unabhangig sind solltest du keine Probleme haben sie mit && zu verknüpfen. Was nicht funktionieren wird ist folgendes: Beispiel netsh: Du gibst netsh in die Konsole ein, dann ip oder ähnliches und alle weiteren Befehle laufen unter "netsh ip". Du wirst immer "netsh ip" Befehl eingeben müssen.
(hm, ob das jetzt verständlich war :gruebel: ... im Zweifels Fall ausprobieren..)

Im Prinzip gilt:
Ausprobieren was funktioniert. Du musst nicht umbedingt per Delphi un Shellexecute rumprobieren ... zum Testen reicht auch Start -> Ausführen. Wenn du es da zum Laufen gebracht hast geht es auch per Delphi.

turboPASCAL 15. Jun 2005 16:53

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
   ShellExecute(hInstance, 'open', 'cmd.exe',
     '/c ping "www.delphipraxis.net && '+
     'ping www.ottifant.de"', nil, SW_SHOW); // SW_SHOW, SW_HIDE oder SW_MINIMIZE
end;
Windowshilfe
Zitat:

cmd.exe /c Zeichenfolge - Führt den durch Zeichenfolge angegebenen Befehl aus und wird dann beendet.

Sie können in Zeichenfolge mehrere Befehle angeben. Dazu ist es aber erforderlich, dass Sie Zeichenfolge in Anführungszeichen setzen und die Befehle durch das Befehlstrennzeichen && trennen (Beispiel: "Befehl&&Befehl&&Befehl").

SlowDown 16. Jun 2005 07:15

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Das Problem ist, ich brauch das nicht für die cmd.exe, sondern für die wmic.exe...da scheint bei mir zumindest && nicht zu funtionieren, /c schon gar nicht...
Delphi-Quellcode:
begin
 ShellExecute(
  hInstance, 'open', 'wmic.exe',
  '/output:C:\Loggin\prozesse.htm process get /format:htable &&'+
  '/output:C:\Loggin\dienste.htm service get /format:htable',
  nil,SW_Hide );
end;
so wird nur der erste Befehl ausgeführt, /c hab ich weggelassen, geht hier scheinbar net...
wer weiss rat??

Im Endeffekt geht es darum, das ich mich in der Freizeit noch um ein paar Rechner kümmern muss, den leuten allerdings JEDESMAL zu erklären, was den die eingabeaufforderung ist, etc, ist mir inzwischen zu doof, soviel zeit und lust hab ich leider nicht, also dachte ich, machst ein mini programm, wo dann alles was ich wissen will, in einen ordner speichert, wmic.exe ist dafür super geeignet..
Also geht es bei mir in erster linie darum, nur die wmic.exe anzusprechen, verschiedene Informationen abzuarbeiten und fertig, wenn ich aber nicht direkt die wmic.exe ansprechen kann, (also für mehrere befehle) wäre es dann ne idee, der cmd.exe das rüber zuschicken, das die das an wmic weitergibt ?? das müsste ja gehen oder ???

RavenIV 16. Jun 2005 07:28

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Zitat:

Zitat von SlowDown
Das Problem ist, ich brauch das nicht für die cmd.exe, sondern für die wmic.exe...da scheint bei mir zumindest && nicht zu funtionieren, /c schon gar nicht...

was macht denn "wmic.exe"?

gruessle

Flocke 16. Jun 2005 07:40

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Das "/c" so wie auch das "&&" sind spezielle Kommandos, die nur cmd.exe versteht.
Das sollte gehen:
Delphi-Quellcode:
begin
 ShellExecute(
  hInstance, 'open', 'cmd.exe',
  '/c wmic.exe /output:C:\Loggin\prozesse.htm process get /format:htable &&'+
  'wmic.exe /output:C:\Loggin\dienste.htm service get /format:htable',
  nil,SW_Hide );
end;

SlowDown 16. Jun 2005 07:42

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Da ist es kurz und bündig erklärt, besser kann ichs au net schreiben ;-)
dotnetframework.de

SlowDown 16. Jun 2005 07:46

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Hab ich mir doch gedacht das es so geht, du bist der Hammer, Danke... :hello:

marabu 16. Jun 2005 07:49

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Zitat:

Zitat von SlowDown
Das Problem ist, ich brauch das nicht für die cmd.exe, sondern für die wmic.exe...da scheint bei mir zumindest && nicht zu funtionieren, /c schon gar nicht...

Ich habe nicht den Eindruck, dass dein Problem dem im ursprünglichen thread ähnelt. Deine WMIC Befehle sind doch unabhängig von einander, solange du nicht den interaktiven Modus wählst. Eigentlich hast du einen Befehlsstapel:

Code:
wmic process get /format:htable >process.html
wmic service get /format:htable >service.html
Da die einzelnen Befehle keinen gemeinsamen Kontext benutzen, könntest du tatsächlich diesen Stapel ausführen. Dafür ein Programm zu schreiben, ist unwirtschaftlich, es sei denn du willst weitere Funktionalität reinpacken. Wie der Aufruf von ShellExecute funktioniert, hast du ja schon mehrfach gesehen:

Delphi-Quellcode:
ShellExecute( 
  hInstance, 'open', 'cmd.exe',
  '/c "C:\Winnt\System32\Wbem\wmic.exe" process get /format:htable > C:\process.html',
  nil, SW_HIDE
);
Grüße vom marabu

SlowDown 16. Jun 2005 08:07

Re: Anfänger:Befehl z.b.an cmd.exe zusammenfassen und überge
 
Danke, interessant, nun, wie gesagt, ich hab mir gestern erst die Trial runtergeladen von Borland, hab mit programmieren nichts zu tun, kenn nur html, und hab somit natürlich schwierigkeiten, in den ersten 24 stunden hier durchzublicken ;-) Nun, es sollen Tatsächlich noch einige Funktionen hinzukommen,
Ich will aber meisstens auf die vorhandenen Boardmittel zurückgreifen. Ein Mini Admin Tool für den privaten Hausgebrauch sozusagen.

Da ich einige Pcs von meinen Kumpels pflegen muss, es aber am Telefon doch immer schwierig ist, einem bekennenden Dau zu erklären, geh mal dahin, mach mal cmd auf, schreib das da rein, welche ip hast du, wie alt sind deine Treiber, (Original Antwort nach 2 Minuten Stille : Wo treiben sich Treiber den für gewöhnlich so rum auf so nem PC ? ;-) ) habe ich mich entschlossen, die ganzen Funktionen wo ich öfters brauch unter ne Delphi Hülle zu stecken, wo er dann nur noch 2 3 mal klicken muss, und dann ist alles gut ;-)
Schont meine Telefonkosten und meine Nerven.
Wenn mir jemand noch sagen kann, nach was ich im Forum den so suchen muss, wenn ich zum Beispiel ein edit Feld haben möchte, ( scheint mir das geeignetste zu sein so als delphi dau)wo jemand den prozessnamen nur reinzuschreiben braucht (bösespyware.exe) und dann den namen per öhem String ????????? zu windoof taskkill befördert ?? wäre ich der glücklichste Mensch der Welt ...

Ansonsten allen nen schönen Tag hier, echt erstaunlich wie schnell hier die Antworten kommen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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