Wir wollten ja Daten austauschen. Mit AllocConsole erzeuge ich doch aber eine
neue Konsole in der niemend zuhört. Oder?
Also habe ich AttachConsole genommen. Soweit ich das verstehe, greife ich mir damit die Console des aufrufenden Prozesses.
Damit war es mir nun möglich, wenn meine Anwendung von cmd.exe heraus aufgerufen wird, Texte dorthin auszugeben.
Soweit so gut. Nun fragt mich der andere aber, warum er meinen Salm nicht in eine Textdatei umleiten kann.
Schlimm diese Unix Freaks!!!
Mache ich was falsch oder ist seine Herangehensweise falsch?
Knulli
Hier mal etwas Text von meiner Seite, er wollte "TraffiCage.exe > output.txt" machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| ConsolePresent := AttachConsole(ATTACH_PARENT_PROCESS) AND (GetStdHandle(STD_OUTPUT_HANDLE) <> INVALID_HANDLE_VALUE); OutputToConsole(-1, -1, Now(), 'Startup Test', true); ...
procedure TFTraffiCage.OutputToConsole(aBoxNum, aAntenna: Integer; aDateTime: TDateTime; aAnimalTag: String; aAnimalIn: Boolean); var st: String; iLevels: Integer; JSONObject: TlkJSONobject; begin if not ConsolePresent then exit;
JSONObject := TlkJSONobject.Create; ... iLevels := 0; st := GenerateReadableText(JSONobject, iLevels); Writeln(StringReplace(st, cCrLf, '', [rfReplaceAll])); FreeAndNil(JSONobject); end; |