Autor Beitrag
pc-crack
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 05.07.10 20:50 
Ich möchte auf die windowskonsole zugreifen aber immer wenn ich das mache plopt die Konsole. Weiß jemand wie ich das ändern kann?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
uses IWshRuntimeLibrary_TLB;
var  sh    : IWshShell3;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SH := CoWshShell.Create;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Prog  : IWshExec;
begin
  Prog  := sh.Exec('netsh wlan show interfaces');
  Memo1.Clear;
  Memo1.Lines.add(Prog.StdOut.ReadAll);
  if (Memo1.Lines[19][29] = '%'then
    begin
        Prog  := sh.Exec('');
        Prog.StdOut.ReadAll;
    end;
end;


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.07.10 21:40 
Wenn du nur auf die Konsole zugreifen willst, was machst du denn da mit dem Scripting Host? :shock:

Wie wäre es ganz simpel mit CreateProcess und Pipes?
www.delphi-treff.de/...m-programm-anzeigen/

Und wenn du die Ausgabe live haben willst gibt es TDosCommand:
maxxdelphisite.free.fr/doscmd.htm

Ja, und in deinem Fall kannst du auch einfach die API nutzen, dann kannst du dir das Parsen der Ausgabe sparen...
pc-crack Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 06.07.10 20:56 
Ich hab es versucht aber ich bekomme immer nur chinesische Zeichen...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
var
  LogIn : TDosCommand;
  WLan  : TDosCommand;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WLan.CommandLine := 'ping 127.0.0.1';
  WLan.Execute;
end;

procedure TForm1.OnNewLine(Sender: TObject; NewLine: string; OutputType: TOutputType);
begin
  Form1.Memo1.Lines.Add(NewLine);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  WLan := TDosCommand.Create(self);
  LogIn:= TDosCommand.Create(self);
  WLan.OnNewLine := OnNewLine;
end;


Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 06.07.10 20:59 
welche Delphi-Version verwendest du denn?

ich schätze nämlich das du Delphi2009 oder Delphi2010 verwendest (welches Unicode unterstützt) und die Komponente TDosCommand das aber nicht kann.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
pc-crack Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 07.07.10 20:09 
Delphi 2009


wie kann ich den text den lesbar machen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 07.07.10 20:29 
Ich habe die Komponente TDosCommand vor einer Weile kurz auf Delphi 2009 angepasst, da ist nicht viel zu tun gewesen. Im Anhang die angepasste Version für Delphi 2009.
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: pc-crack, XDev
pc-crack Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 08.07.10 08:11 
jetzt klappt es...


Danke