Autor |
Beitrag |
Guenni_d
Hält's aus hier
Beiträge: 8
D6 Pers
|
Verfasst: Sa 31.01.04 18:03
Hallo zusammen,
hab da ein Problemchen beim ausführen von nem Windows System Tool, und zwar NETSH.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string; begin ExecuteFile:='c:\Windows\Calc.exe'; FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile); lpParameters := PChar('-c interface ip dump >C.\lan.txt'); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode); until (ExitCode <> STILL_ACTIVE) or Application.Terminated; ShowMessage('NETSHterminated'); end else ShowMessage('Error starting NETSH'); end; |
Der Code funktioniert so weit, nur die Umleitung der Ausgabe will net fuinktionieren.
Das heisst, wenn ich die Kommandozeile manuell in ner Dos box aufrufe, dann geht es, aber nicht aus Delphi heraus. Da wird netsh aufgerufen mit den parametern, aber die Ausgabe erfolgt einfach nur auf dem Bildschirm.
Jemand ne Idee?
Gruss Günter
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt
Moderiert von DeCodeGuru: Topic verschoben
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 31.01.04 18:20
C.\lan.txt
Richtig tippen musst du schon.
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 31.01.04 18:22
wenn schon, denn schon, NetSH und nicht Calc. Wäre mir neu wenn der Taschenrechner NetSH versteht
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 31.01.04 18:25
Noch nie von Multifunktionstools gehört? 
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 31.01.04 18:30
haben wollen.
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
Guenni_d 
Hält's aus hier
Beiträge: 8
D6 Pers
|
Verfasst: So 01.02.04 01:43
Titel: ooops
soo spät wars doch gar net...grins.
Also erst mal sorry...aber hab mit dem Calc nebenbei rumgespielt , nach dem netsh den kompletten parameterteil net richtig kapiert. Und beim posten den Quellcode nicht getestet, sonst hätt ich es auch bemerkt. dummdidumm...
aber das Problem bleibt bestehen..
deshalb hier noch mal der Quellcode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| var lantxt: textfile; line: string;
SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string; begin ExecuteFile:='NETSH';
FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle; lpFile := PChar(ExecuteFile);
Paramstring:='-c interface dump >c:\lan.txt'; lpParameters := PChar(ParamString);
nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode); until (ExitCode <> STILL_ACTIVE) or Application.Terminated; ShowMessage('NETSH terminated'); end else ShowMessage('Error starting NETSH!'); |
Sooo.. nun dürfts besser sein, grins. Aber vielleicht nun jemand ne Idee was ich falsch mache?
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 01.02.04 11:01
Starte anstelle des Programms mal den Kommandozeilenprozessor "cmd.exe":
Delphi-Quelltext 1: 2: 3:
| SEInfo.lpFile := 'cmd.exe'; SEInfo.lpParameters := '/c netsh.exe -c interface dump > c:\lan.txt'; SEInfo.nShow := SW_HIDE; |
Dann klappt´s auch. Der Parameter "/c" am Anfang gehört zu "cmd.exe" und sorgt dafür, dass der Befehl ausgeführt und CMD dann beendet wird. Ansonsten einfach mal
Quelltext
eintippen.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 01.02.04 12:01
Hallo, Guenni_d!
Bitte benutze demnächst die Delphi-Tags. Durch die Delphi-Tags wird der Code mit Syntax-Highlighting angezeigt und ist somit sehr viel übersichtlicher.
Viele Dank!
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Guenni_d 
Hält's aus hier
Beiträge: 8
D6 Pers
|
Verfasst: So 01.02.04 13:06
Titel: Viiiiieeellllennn Dank
danke für die schnelle Hilfe...naja die Lösung hatte ja nix mit Delphi zu tun...aber perfekt wenn man hier trotzdem Hilfe findet...
Und werd in Zukunft hoffentlich besser und richtiger Posten.
Grüssle Günter
|
|