Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   hardcopy aus Konsole drucken (https://www.delphipraxis.net/162776-hardcopy-aus-konsole-drucken.html)

explorer1 5. Sep 2011 11:28

Betriebssystem: Win XP

hardcopy aus Konsole drucken
 
begrüße euch alle und schönen guten Tag,

ich bin noch immer auf der Suche nach einem praxisorientierten Forum, indem die L Ö S U N G von Problemen im Focum steht.

Ich skizziere mein Problem :

vorab ich habe in der Anwendung von CMD Befehlen wenig Erfahrung, doch konnten mir bisher auch sogenannte Experten wenig helfen!

Mein Problem liegt in der Umsetzung beim Drucken von CMD Befehlen.
konkretes Fallbeispiel :

mein Ansinnen: diverse cmd-Befehle von der 'Konsole' aus zu drucken.

der Befehl :print ipconfig/all auszudrucken mißlang!
kann mir jemand die konkrete Syntax/Parameter posten ??

das Directory 'ipconfig' ist schreibgeschützt und liegt in:
C:\Windows\system32\ipconfig.exe

die allgemeine Befehlssyntax vom MS-printbefehl :
PRINT [/D:Gerät] [[Laufwerk:][Pfad]Dateiname[....]]

hab alles probiert, funktioniert nicht bei mir :

was geb ich für D: ein ? bei mir ist der Drucker auf parallele Schnittstelle LPT1 angeschlossen! die Datei ipconfig.exe ist eine auszuführende Programmdatei;

gebe ich in der Eingabeaufforderung 'ipconfig / all' ein, erscheint alles korrekt, doch ich kenne den Druckbefehl nicht.

falls relevante Angaben fehlen, sende ich diese sofort zu.
mfg /explorer1

s.h.a.r.k 5. Sep 2011 11:50

AW: hardcopy aus Konsole drucken
 
Zitat:

Zitat von http://www.robvanderwoude.com/printfiles.php
On most modern computers, PRINT will be useless, because it needs a printer port like LPT1 or COM1 etc., whereas most printers nowadays are connected either to USB ports or over a TCP/IP connection.

Hatte gehofft, dass folgendes geht, hat bisher aber noch nicht zum Erfolg geführt.
Code:
H:\>ipconfig /all > ipconfig-all.txt | notepad /p ipconfig-all.txt | del ipconfig-all.txt

explorer1 5. Sep 2011 12:24

AW: hardcopy aus Konsole drucken
 
H:\>ipconfig /all > ipconfig-all.txt | notepad /p ipconfig-all.txt | del ipconfig-all.txt

hello shark, danke.

ich kann jetzt das blind eingeben, doch hatte ich schon mein blaues wunder erlebt bis zum sysemabsturz.
wieso Laufwerk H:\ muss es H:\> sein, oder ist das eine Variable ?
kannst Du mir bitte die einzelenen Schritte erklären ?
1) muss das Zeichen > sein?
2) bedeutet ipconfig /all > ipconfig-all.txt die convertierung von*.exe in *.txt?
3) ich versteh den letzten Schritt nicht: "del ipconfig-all.txt" wieso löschen ?

mfg/explorer1

pustekuchen 5. Sep 2011 12:35

AW: hardcopy aus Konsole drucken
 
Zitat:

H:\>ipconfig /all > ipconfig-all.txt | notepad /p ipconfig-all.txt | del ipconfig-all.txt
H: Ist der Laufwerksbuchstabe, bei dir wahrscheinlich C:
Das > bedeuted, das das Ergebnis in einer Textdatei gespeichert wird.
notepad /p ipconfig-all.txt öffnet die Datei mit Notepad.exe und soll wahrscheinlich den druckdialog öffnen
del ipconfig-all.txt soll die Textdatei wieder löschen,da sie nur Temporär gebraucht wird.

Doch wie shark schon oben schrieb, hat es bei ihm noch nicht funktioniert ;)

PS: Versuch die Datei mal mit "Run print "H:\ipconfig-all.txt" zu drucken

mschaefer 5. Sep 2011 12:41

AW: hardcopy aus Konsole drucken
 
Das mit dem Del funktioniert leider nicht, denn die Datei wird noch gesperrt sein, wenn das Druckprogramm geöffnet ist.

Habe hier eine Variante mit der man mit dem Explorer druckt, wobei html und txt Dateien gedruckt werden können.

Delphi-Quellcode:
ipconfig /all > %TMP%/ipconfig-all.txt | RUNDLL32.EXE MSHTML.DLL,PrintHTML "%TMP%\ipconfig-all.txt"


Grüße in die Runde

Bummi 5. Sep 2011 14:35

AW: hardcopy aus Konsole drucken
 
ich hätte da noch was

ipconfig / all | PRT.exe

Delphi-Quellcode:
program PRT;
// 20110905 by Thomas Wassermann
{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows,
  Classes,
  Printers;

var
  Buffer: array [0..100000] of AnsiChar;
  BytesRead:cardinal;
  sl:TStringList;
  Y,i,th,ph:Integer;
begin
  try
    sl:=TStringList.Create;
  try

   ReadFile(STD_INPUT_HANDLE , Buffer, 10000, BytesRead, nil);
   sl.Text := sl.text + Copy(Buffer,0,BytesRead);
   while BytesRead>0 do
      begin
       ReadFile(STD_INPUT_HANDLE , Buffer, 10000, BytesRead, nil);
       sl.Text := sl.text + Copy(Buffer,0,BytesRead);
       Sleep(100);
      end;
   if sl.Count>0 then
      begin
       Printer.BeginDoc;
       th := Printer.Canvas.TextHeight('X');
       ph := Printer.PageHeight;
       Y := 0;
       for I := 0 to sl.Count-1 do
          begin
            Y := y + th;
            if y > ph then
              begin
              y := 0;
              Printer.NewPage;
              end;
            Printer.Canvas.TextOut(10, y ,sl[i]);
          end;
       Printer.EndDoc;
      end;

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  finally
    sl.Free;
  end;
end.

Hansa 5. Sep 2011 15:10

AW: hardcopy aus Konsole drucken
 
Das hier geht :

net use lpt1: /Delete
net use lpt1: \\Rechnername\Drucker-Freigabename /persistent:YES
ipconfig /all >1
print 1

Das net use dient eigentlich nur dazu, den LPT1 zu simulieren. Das geht sogar auch dann, wenn gar keiner da ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 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