Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Anzahl der Drucke eines Druckers abfragen (https://www.delphipraxis.net/178562-anzahl-der-drucke-eines-druckers-abfragen.html)

Frage95 15. Jan 2014 07:24

Anzahl der Drucke eines Druckers abfragen
 
Hallo,

ich möchte ein Tool schreiben, mit dem ich die Anzahl der Ausdrucke eines Druckers abfragen kann. Das hat den zweck dass man weiß, wann eine Trommeleinheit ausgetauscht werden muss.
Diese Drucker global verteil also in ganz Deutschland.

Nur leider weiß ich nicht wie ich die Drucker ansprechen kann.

:?::?::?:

RWarnecke 15. Jan 2014 07:35

AW: Anzahl der Drucke eines Druckers abfragen
 
Hallo, vielleicht ist ja diese Komponente von mir etwas für Dich.

jaenicke 15. Jan 2014 07:47

AW: Anzahl der Drucke eines Druckers abfragen
 
Ich würde mich wundern, wenn diese Komponente das allgemein könnte.
Wir mussten dafür über die druckerspezifische API des Druckerherstellers gehen.

Frage95 15. Jan 2014 07:59

AW: Anzahl der Drucke eines Druckers abfragen
 
geht das denn nicht über die IP oder so ?

ich bin ein anfänger in Delphi nicht wundern :D

Union 15. Jan 2014 08:11

AW: Anzahl der Drucke eines Druckers abfragen
 
Es geht über SNMP. Die MIB sind aber oft druckerspezifisch. Oft erfolgt auch die Rückgabe der Tonerstände in 25%-Schritten und ist damit nicht vernünftig zu verwenden. Hier mal ein Ansatz, die MIBs sind in der Funktion InitMibValues einfach anpassbar bzw. erweiterbar:

Delphi-Quellcode:
uses IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdSNMP;

{$R *.dfm}

procedure TForm1.btnQueryClick(Sender: TObject);
var
  Snmp: TIdSNMP;
  MibIndex: Integer;
  MibValues : TStringList;
  MibLabel : string;
  ValIndex : Integer;
begin
   Snmp := TIdSNMP.Create(nil);
   MibValues := TStringList.Create;
   try
     Snmp.Query.Host := edtIp.Text;
     Snmp.Query.Community := 'public';
     Snmp.Query.PDUType := PDUGetRequest;
     InitMibValues(MibValues);
     for MibIndex := 0 to MibValues.Count -1 do
     begin
        Snmp.Query.MIBOID.Clear;
        MibLabel := MibValues.Names[MibIndex];
        Snmp.Query.MIBAdd(MibValues.ValueFromIndex[MibIndex], '');

        if Snmp.SendQuery then
        begin
          for ValIndex := 0 to Snmp.Reply.ValueCount - 1 do
            MemoResult.Lines.Add(Format('%-20s: %s', [MibLabel, Snmp.Reply.Value[0]]));
        end;
     end;
   finally
     MibValues.Free;
     Snmp.Free;
   end;
end;

procedure TForm1.InitMibValues(AList: TStrings);
const
   PrintPrefix = '1.3.6.1.2.1.';
var
   i : integer;
begin
   AList.Values['Geräteinformation'] := '1.1.0';
   AList.Values['Gesamtseiten']     := '43.10.2.1.4.1.1';
   AList.Values['Tonerstand 1']     := '43.11.1.1.9.1.1';
   AList.Values['Tonerstand 2']     := '43.11.1.1.9.1.2';
   AList.Values['Tonerstand 3']     := '43.11.1.1.9.1.3';
   AList.Values['Tonerstand 4']     := '43.11.1.1.9.1.4';
   for i := 0 to AList.Count-1 do
   begin
      AList.ValueFromIndex[i] := PrintPrefix + AList.ValueFromIndex[i];
   end;
end;

Frage95 15. Jan 2014 08:23

AW: Anzahl der Drucke eines Druckers abfragen
 
Okay versuche gerade deinen quellcode zu benutzen aber ich habe noch ein kleines problem und zwar zeigt er mir an, dass InitMibValues ein undeklarierter Bezeichner ist
wo liegt den mein Fehler?

Union 15. Jan 2014 08:26

AW: Anzahl der Drucke eines Druckers abfragen
 
Ich habe das als Methode des Formularobjekts deklariert. Entweder Du machst das auch, oder Du machst eine normale Funktion draus und verlagerst sie vor den Aufrufer.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    btnQuery: TButton;
    edtIP: TEdit;
    Label1: TLabel;
    memoResult: TMemo;
    procedure btnQueryClick(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure InitMibValues(AList : TStrings); // <<<<<<<<<<<< hier deklarieren
  public
    { Public-Deklarationen }
  end;

Frage95 15. Jan 2014 08:34

AW: Anzahl der Drucke eines Druckers abfragen
 
okay danke jz habe ich keine Fehler mehr auf dem Bildschirm.

Jetzt bleibt nur noch die Frage wie ich das Tool benutze ich habe oben im Edit Feld die Ip des Druckers eingegeben doch da passiert nichts ?

Tut mir leid es ist früh am Morgen ich steh ein bisschen auf dem Schlauch zudem bin ich ein anfänger in Delphi :stupid:

TiGü 15. Jan 2014 08:40

AW: Anzahl der Drucke eines Druckers abfragen
 
Zitat:

Zitat von Frage95 (Beitrag 1243710)
Tut mir leid es ist früh am Morgen ich steh ein bisschen auf dem Schlauch zudem bin ich ein anfänger in Delphi :stupid:

Die Aufgabenstellung ist vielleicht noch ein bis zwei Stufen zu hoch?
Schau mal hier: http://www.delphi-treff.de/downloads/e-book/
Insbesondere Kapitel 5!

Frage95 15. Jan 2014 08:51

AW: Anzahl der Drucke eines Druckers abfragen
 
hnm.... und wie bringe ich es jz zum laufen ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Seite 1 von 4  1 23     Letzte »    

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