AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Drucker auslesen mit EnumPrinters

Drucker auslesen mit EnumPrinters

Ein Thema von RWarnecke · begonnen am 5. Okt 2007 · letzter Beitrag vom 5. Okt 2007
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 15:29
Hallo zusammen,

ich habe folgendes Problem. Wenn ich mit dem Befehl
EnumPrinters(PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL or PRINTER_ENUM_NAME, nil, 4, PByte(Buffer), Count, Count, NumInfo) die Anzahl meiner Drucker auslese, bekomme ich 4 raus bei NumInfo. Mache ich das gleiche nur mit dem Level 2, dann bekomme ich nur 3 raus bei NumInfo. Woran liegt das ? Der eine Drucker der nicht erkannt wird, ist ein Share-Drucker auf einen anderen Rechner. Wenn dieser Share weg ist, funktioniert alles Wunderbar.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 16:19
Zitat von RWarnecke:
die Anzahl meiner Drucker auslese, bekomme ich 4 raus bei NumInfo. Mache ich das gleiche nur mit dem Level 2, dann bekomme ich nur 3 raus bei NumInfo. Woran liegt das ? Der eine Drucker der nicht erkannt wird, ist ein Share-Drucker auf einen anderen Rechner. Wenn dieser Share weg ist, funktioniert alles Wunderbar.
Soweit ich weiß, ist das so gewollt, darüber lassen sicht meines wissens nach Netzwerkdrucker ausschließen.. macht also schon Sinn....
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 16:49
Zitat von f.siebler:
Soweit ich weiß, ist das so gewollt, darüber lassen sicht meines wissens nach Netzwerkdrucker ausschließen.. macht also schon Sinn....
Ok, das kann ich ja vielleicht noch einsehen. Nur wie lese ich dann die Drucker aus, die ich als Share zugewiesen habe ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 17:53
Hallo Rolf,

mit WNetOpenEnum() kannst du dir eine Liste der verbundenen Drucker (dwType = RESOURCETYPE_PRINT) besorgen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#5

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 19:43
Zitat von marabu:
Hallo Rolf,

mit WNetOpenEnum() kannst du dir eine Liste der verbundenen Drucker (dwType = RESOURCETYPE_PRINT) besorgen.

Grüße vom marabu
Noch eine Verständnisfrage. Funktioniert dieser Befehl auch dann, wenn ich die Share's in einer Umgebung verbinde, wo keine Domaine existiert ? Also meine Rechner sind alle nur in einer Arbeitsgruppe mit Ihren eigenen Namen. Da kann es auch passieren das die Arbeitsgruppen unterschiedlich heißen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 20:36
Warum nicht?

Aber mal eine Frage zurück: Warum verwendest du bei EnumPrinters nicht einfach andere Flags?

EnumPrinters(PRINTER_ENUM_SHARED or PRINTER_ENUM_LOCAL or PRINTER_ENUM_NAME, ...
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 20:37
Ich habe schon verschiedene Möglichkeiten ausprobiert, nur leider bisher noch nicht die richtige gefunden.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 21:07
Vergiss bitte _SHARED, da war ich auf dem Holzweg. Ich habe jetzt einfach mal den VCL-Code verwendet und muss feststellen, dass der soeben eigens im Netz installierte GENERIC PRINTER anstandslos in der Liste Printer.Printers auftaucht. Dort werden die Flags PRINTER_ENUM_CONNECTIONS und PRINTER_ENUM_LOCAL verwendet. Vielleicht steckt ja dein Fehler wo anders?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#9

Re: Drucker auslesen mit EnumPrinters

  Alt 5. Okt 2007, 21:31
Danke marabu für Deine Hilfe. Ich habe meinen Fehler vorerst einmal gefunden. Ich habe irgendwie ein kudelmuddel mit den Flags und den Level's gehabt. Habe jetzt nochmals die Flags neu geschrieben und nun funktioniert es. Ich weiß allerdings noch nicht warum das so ist. Ich werde es morgen nochmal auf einen Rechner testen, der in einer Domaine ist. Ich bin aber zuversichtlich, dass es jetzt funktioinert.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 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