![]() |
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. :?::?::?: |
AW: Anzahl der Drucke eines Druckers abfragen
Hallo, vielleicht ist ja diese
![]() |
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. |
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 |
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; |
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? |
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; |
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: |
AW: Anzahl der Drucke eines Druckers abfragen
Zitat:
Schau mal hier: ![]() Insbesondere Kapitel 5! |
AW: Anzahl der Drucke eines Druckers abfragen
hnm.... und wie bringe ich es jz zum laufen ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz