Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Drucker eindeutig erkennen? (https://www.delphipraxis.net/166152-drucker-eindeutig-erkennen.html)

sh17 1. Feb 2012 07:44

Drucker eindeutig erkennen?
 
Gibt es eine Möglichkeit einen Drucker(-Treiber) eindeutig auf mehreren Arbeitsplätzen zu indentifizieren, anstatt über seinen Namen?

Der Druckername kann ja durchaus auf den Arbeitsplätzen unterschiedlich sein, bzw. bekomme ich ihn manchmal gar nicht umbenannt, sodass alles gleich lauten.

RWarnecke 1. Feb 2012 08:37

AW: Drucker eindeutig erkennen?
 
Lese doch den Treiber aus, der hinter einem Druckernamen ist.

sh17 1. Feb 2012 10:16

AW: Drucker eindeutig erkennen?
 
Worauf schaue ich da? Gibt es irgend eine eindeutige ID über Betriebssystem- und Treiberversionen hinweg?

RWarnecke 1. Feb 2012 10:45

AW: Drucker eindeutig erkennen?
 
Was ist denn überhaupt Dein Ziel ? Um einen Drucker zu identifiziern, würde ich den Treiber des Druckers und den Druckernamen nehmen. Aber es kommt natürlich auch darauf an, was Du nachher mit den Daten machen willst. Eine andere Variante wäre noch, den Anschluss des Druckers auszulesen. Damit hättest Du eine eindeutige Identfikation des Druckers, egal wie er heißt oder welcher Treiber hinterlegt ist.

himitsu 1. Feb 2012 10:45

AW: Drucker eindeutig erkennen?
 
Außer bei Netzwerkdruckern (dort kommt's drauf an, ob der unverändert durchgereicht wird) sollte man irgendwie an den Gerätenamen rankommen können.

Alternativ könntest du auch mit einer Maske, RegEx oder Dergleichen, versuchen nur einen wichtigen/eindeutigen Teil des Druckernamens zu vergleichen.

sh17 1. Feb 2012 10:59

AW: Drucker eindeutig erkennen?
 
Zitat:

Zitat von himitsu (Beitrag 1148662)
Außer bei Netzwerkdruckern (dort kommt's drauf an, ob der unverändert durchgereicht wird) sollte man irgendwie an den Gerätenamen rankommen können.

Alternativ könntest du auch mit einer Maske, RegEx oder Dergleichen, versuchen nur einen wichtigen/eindeutigen Teil des Druckernamens zu vergleichen.

Es geht um Netzwerkdrucker - ok, dann werde ich wohl auf derlei Vergleich zurückgreifen müssen, wollte nur wissen, ob es vielleicht etwas eleganteres gibt.
Ich muss eben von jedem Client automtisch auf den richtigen Drucker zugreifen, und der heisst nicht immer gleich, oder lässt sich nicht gleich benennen.

RWarnecke 1. Feb 2012 11:13

AW: Drucker eindeutig erkennen?
 
Werden die Drucker über eine Druckerverteilung verteilt oder hast Du auf jedem Rechner einen IP-Druck (Anschluss: Standard TCP/IP Port) eingerichtet ? Bei beiden Varianten, kannst Du auf den Anschluss zurückgreifen. Diesen kannst Du über die Windows-API auslesen oder über die Registry unter HKLM/SYSTEM/CurrentControlSet/Control/Print.

MacGuyver 1. Feb 2012 11:15

AW: Drucker eindeutig erkennen?
 
Moin,

schreibe doch einfach den Namen des Druckers in die Registry unter CurrentUser und gut. Zum Drucken einmal auslesen und dann ausgeben. Dann noch einen PrinterSettingsDialog für den Komfort und gib ihm.

Stefan

einbeliebigername 1. Feb 2012 11:16

AW: Drucker eindeutig erkennen?
 
Hallo,

Zitat:

Zitat von sh17 (Beitrag 1148666)
Es geht um Netzwerkdrucker

es müsste eigentlich möglich sein an den UNC-Pfad oder IP-Adresse heranzukommen. Windows zeigt diese ja auch an.

einbeliebigername.

sh17 1. Feb 2012 11:18

AW: Drucker eindeutig erkennen?
 
ok, schau ich mir mal an.

shmia 1. Feb 2012 12:41

AW: Drucker eindeutig erkennen?
 
Mit diesem Code kann man alle möglichen Infos über einen Drucker abfragen.

Aber ich versteh' dein Problem gar nicht.
Druckernamen sind Rechnerabhängig.
Bei mehreren Rechnern auf denen überall die gleiche Anwendung läuft,
kann es durchaus Sinn machen, wenn nicht alle Programme auf dem gleichen Drucker arbeiten.
Welcher Drucker benützt werden soll, ist die Entscheidung des Anwenders, nicht des Programmierers!
Also gib man dem Benutzer die Möglichkeit den Drucker auszuwählen und speichert den Druckernamen in einer Ini-Datei oder in einer Datenbank (dann aber zusammen mit dem Rechnernamen).

sh17 1. Feb 2012 12:58

AW: Drucker eindeutig erkennen?
 
Zitat:

Zitat von shmia (Beitrag 1148687)
Welcher Drucker benützt werden soll, ist die Entscheidung des Anwenders, nicht des Programmierers!

Danke für den Link.

Zum Verständnisproblem:
Zentral wird festgelegt, auf welchem Drucker(Schacht) Dokumente in Anzahl x herauskommen. Dies soll automatisch dann an den Arbeitsplätzen geschehen. Der Anwender soll eben nicht mehr vor die Entscheidung gestellt werden, welchen Drucker er nehmen kann. Um Fehler zu vermeiden, die Anzahl der Klicks zu veringern und weil sowieso feststeht aus welchem Drucker das Blatt kommen soll wo das Briefpapier liegt.

Sir Rufo 1. Feb 2012 14:15

AW: Drucker eindeutig erkennen?
 
Dafür würde ich eine zentrale Anwendung in Betracht ziehen, die die Druckanforderungen entgegennimmt und dann auf die Drucker verteilt.

Dadurch würde sich dieses Problem nicht ergeben, und man müsste auch nicht ständig überwachen, ob alle Drucker an jeder Arbeitsstation eingerichtet sind - auch wenn das in einer einer Domäne relativ einfach zu gewährleisten ist.

Zusätzlich werden die Clients auch entlastet und die notwendigen Zugriffe auf die DB können besser gesteuert werden.

sh17 1. Feb 2012 14:24

AW: Drucker eindeutig erkennen?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1148712)
Dafür würde ich eine zentrale Anwendung in Betracht ziehen, die die Druckanforderungen entgegennimmt und dann auf die Drucker verteilt.

Dadurch würde sich dieses Problem nicht ergeben, und man müsste auch nicht ständig überwachen, ob alle Drucker an jeder Arbeitsstation eingerichtet sind - auch wenn das in einer einer Domäne relativ einfach zu gewährleisten ist.

Zusätzlich werden die Clients auch entlastet und die notwendigen Zugriffe auf die DB können besser gesteuert werden.

Hab ich auch schon überlegt, ist nur etwas auwändiger fürs erste.

Neumann 1. Feb 2012 15:15

AW: Drucker eindeutig erkennen?
 
Was nacht der arme Anwender, wenn der voreingestellte Drucker nicht funktioniert und er keinen Drucker auswählen kann?

Sir Rufo 1. Feb 2012 15:28

AW: Drucker eindeutig erkennen?
 
Zitat:

Zitat von Neumann (Beitrag 1148724)
Was nacht der arme Anwender, wenn der voreingestellte Drucker nicht funktioniert und er keinen Drucker auswählen kann?

Sowas sollte in der QS Doku stehen ;)

Medium 1. Feb 2012 15:37

AW: Drucker eindeutig erkennen?
 
Es gibt durchaus Individualsoftware, die das Vorhandensein und die ordnungsgemäße Funktion einer zur Gesamtanlage gehörigen Hardware voraussetzen kann bzw. oft auch muss. Ist dies nicht gegeben, liegt ein Supportfall für den Hersteller oder Wartungsbetrieb vor. Nicht jeder schreibt nur Programme für den beliebigen Endkunden zu Hause mit seinem Heim-PC ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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-2025 by Thomas Breitkreuz