Thema: Delphi Console: OEM nach ANSI

Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Console: OEM nach ANSI

  Alt 13. Jun 2010, 20:00
Delphi-Quellcode:
function ShellReadThread(lpParam: Pointer): Cardinal;
var
  ExitCode: Cardinal;
  BytesRead: DWord;
  Buffer: array[0..1024 * 8 - 1] of AnsiChar;
begin
  while (not Terminated) do
  begin
    GetExitCodeProcess(FProcessInfo.hProcess, ExitCode);
    if (ExitCode <> STILL_ACTIVE) then
    begin
      Terminate;
      Break;
    end;
    if (ReadFile(hoRead, Buffer[0], Length(Buffer), BytesRead, nil)) and
      (BytesRead > 0) then
    begin
      SendPriorityCommand(ParentThread.IDTPWriter, CMDS_SHELLOUTPUT,
        @Buffer[0], BytesRead, true);
    end;
    Sleep(50);
  end;
  Result := 0;
end;
Wie man sieht landen die Daten direkt in einem ByteArray. Wenn ich die Daten an OEM2ANSI übergebe, wird das Teil halt zwangsweise kurzzeitig in einen AnsiString konvertiert.
  Mit Zitat antworten Zitat