AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Kommandozeilen Programm innerhalb von Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Kommandozeilen Programm innerhalb von Delphi

Offene Frage von "lorus"
Ein Thema von lorus · begonnen am 29. Nov 2006 · letzter Beitrag vom 3. Dez 2006
Antwort Antwort
Seite 2 von 2     12   
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#11

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 18:01
habs ausprobiert

Delphi-Quellcode:
procedure TForm1.BtnWriteCmdClick(Sender: TObject);
begin
  FWriteToStdIn('ping google.de' + #13#10);
  FWriteToStdIn('ping google.de' + #13#10);
end;
Ergebnis:

google wird gepingt .. 4 antworten und anschließend wird google nochmal gepingt ..


edit: Es ist gleich noch eine Frage aufgekommen
Die Sonderzeichen die übergeleitet werden, werden in der Memobox nicht so wie im cmd
dargestellt. Wie könnte man es erreichen, das das Memo den selben Zeichensatz verwendet, wie
das cmd?
  Mit Zitat antworten Zitat
1. Dez 2006, 15:09
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#13

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 2. Dez 2006, 00:14
Huhu zusammen,

ich konkretisiere meine Fragen nochmal:

1) Wie ist der Zeichensatz von der DOS-Eingabeaufforderung?
2) Wie bringe ich den Zeichensatz am besten einem Memo bei?



Grüße,

Lorus
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#14

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 2. Dez 2006, 06:18
Dazu gibt es die Win32 Funktionen OemToChar, OemToChar, CharToOem und CharToOemBuff. Sie konvertieren C Strings zwischen den beiden Zeichensaetzen.
  Mit Zitat antworten Zitat
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#15

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 2. Dez 2006, 15:37
Huhu,

erstmal danke für die Antwort

Hab jetzt folgendes probiert:

Delphi-Quellcode:
procedure TForm1.DosCommand1NewLine(Sender: TObject; NewLine: String;
  OutputType: TOutputType);
begin
  DosCommand1.OutputLines := OemToChar(Memo1.Lines);
end;
bekomme nun aber Fehler das PAnsiChar und TString inkompatible Typen sind :-/
muss also jeder buchstabe einzeln umgewandelt werden? wie stelle ich das am besten an?

P.S. ich verwende jetzt die TDosCommand-Komponente
  Mit Zitat antworten Zitat
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#16

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 3. Dez 2006, 13:23
Huhu zusammen,

hab mir noch mal den Code von SirThornberry hergenommen, der gefällt mir im Prinzip auch besser als die TDosCommand-Kompo.

Hab im Forum jetzt noch folgende Funktionen für Ascii --> Ansi Konvertierung gefunden und umgedreht.

Delphi-Quellcode:
function Ascii2Ansi(const s:AnsiString):AnsiString;
begin
   Result := s;
   if Result <> 'then
   begin
      UniqueString(Result);
      OemToChar(Pchar(Result), Pchar(Result));
   end;
end;

function Ansi2Ascii(const s:AnsiString):AnsiString;
begin
   Result := s;
   if Result <> 'then
   begin
      UniqueString(Result);
      CharToOem(Pchar(Result), Pchar(Result));
   end;
end;

und hab das dann so in den Code eingebaut:
Delphi-Quellcode:
procedure TForm1.FClbProc(Sender: TObject; const ABuffer: String; ABufSize: Cardinal);
var LNew: String;
    LPos: Integer;
begin
  LNew := copy(ABuffer, 1, ABufSize);
  LPos := pos(#$C, LNew);
  if (LPos > 0) then
  begin
    MemoOutput.Text := '';
    LNew := copy(LNew, LPos + 1, Length(LNew));
  end;
  MemoOutput.Text := Ansi2Ascii(MemoOutput.Text + LNew);
  PostMessage(MemoOutput.Handle, WM_VSCROLL, SB_BOTTOM, 0);
end;

Die Veränderung in der Zeile:
MemoOutput.Text := Ansi2Ascii(MemoOutput.Text + LNew); bringt aber leider nicht den gewünschten Erfolg :-/

Habt ihr eine Idee, wie ich es richtig hinbekommen könnte?

Grüße,

Lorus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz