AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie programmiere ich einen Drucker

Ein Thema von KahPee · begonnen am 29. Sep 2010 · letzter Beitrag vom 30. Sep 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 17:37
Hallo,

ich habe eine Frage (wer hätte das gedacht?) und zwar folgendes. Ist es möglich einen Drucker zu programmieren. Es geht darum an einer Schule mit einem Programm (installiertes Druckertool) jeden Schüler für das drucken zur Kasse zu bitten (um Kosten für Papier etc. zu sichern). Dafür sollen die Schüler vorher Geld auf ein Konto einzahlen. Möchte ein Schüler nun etwas ausdrucken wählt er im Druckerdialog von Word/Firefox oder was auch immer das Druckertool aus und dann wird das Geld abgebucht (evtl noch Eingabe von Zugangsdaten für das Schülerkonto).
Ich kenne es von Programmen wie pdfCreator, dass die sich als Drucker installieren lassen. Wie macht man ein solches Programm, dass die Druckaufträge abfängt?

mfg KahPee
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 18:15
Hallo,

google mal nach dem Stichwort "virtueller Drucker".

Lg,
jus
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 18:22
Obwohl ich mir denke, dass der Ansatz so nicht funktionieren wird.

Auf dem Rechner müssen die normalen Drucker auch installiert sein, sonst kann ich über die ja nicht den realen Ausdruck starten, bzw. Anpassungen über den Druckertreiber vornehmen (Hoch-/Querformat, Farbe, Qualität).

Einen virtuellen Drucker wie pdfCreator ist wie ein normaler Drucker in der Liste und kann bei Bedarf ausgewählt werden. Alle anderen Drucker aber auch. Man kann also insofern nicht sicherstellen, dass alle auch nur über diesen virtuellen Drucker den Ausdruck vornehmen.

Somit müsste man also etwas (einen Hook?) programmieren, was sich zwischen die Druckausgabe klemmt und dann entsprechend die Seiten mitzählt und das Benutzerkonto belastet.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 18:24
PDFCreator ist ja auch Open-Source, da müsste sich doch einiges abschauen lassen. Die andere Sache ist natürlich die: Wenn du deinen eigenen Druckertreiber irgendwann gebaut hast, was hindert Menschen dann dadran, in dem Druck-Dialog einfach den echten auszuwählen, der kein Geld vom Konto abbucht? Und dann muss natürlich alles, was dem virtuellen gesagt wird, an den echten durchgereicht werden, und da gibt es wohl je nach Druckertyp sehr viele Parameter zum drucken (Im Druckdialog gibt es ja diesen schönen "Eigenschaften"-Knopf neben der Druckerauswahl, da kann man ja so manches einstellen...). Gibt es für Drucker vielleicht Filter-Treiber wie für andere Geräte?
Vielleicht könnte man auch einfach einen Hook schreiben, der den/die Funktionen zum Drucken abfängt und erst an Windows weiterleitet, wenn gezahlt wurde? So würde ich das jedenfalls erstmal probieren...

Doofer Kasten... Sir Rufo dachte wohl in die selbe Richtung, meine Zwänge verlangen aber, dass ich poste...

HTH
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 18:43
Nö, aber es gibt einen Notifier für Druckjobs

Da war schon jemand aktiv und hat da was umgesetzt (sogar in Delphi), was zu 90% diesen Fall abdeckt
http://sourceforge.net/projects/vigilimp/

Könnte passen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 18:55
HEy,

danke schon mal für die ersten Antworten - virtueller Drucker - das war das Wort wonach ich beim schreiben gesucht habe...
Meine erste Intention war auch einen Hook zu schreiben. Nur habe ich absolut gar keine Ahnung wie man den Befehl abfängt. Das mit dem Aussuchen eines anderen druckers wäre nicht das problem gewesen, da die nutzer keine Adminrechte haben und so keine drucker installieren können. Der einzige installierte Drucker wäre dann ebenjener der zur Kasse bittet...

Aber nichtsdestotrotz klingt würde ich gerne mal die Variante das per Hook zu machen verfolgen. Wie müsste man dann die Sache angehen?


mfg KahPee

Edit: Achso falls es eine Rolle spielt. Der Einfachheit halber handelt es sich um einen Netzwerkdrucker ^^

Geändert von KahPee (29. Sep 2010 um 18:57 Uhr)
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#7

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 19:41
Hier an der Uni läuft das über einen Druckserver, der die Seiten alle einzelne verarbeitet und dann an den Netzwerkdrucker weitergibt. So ist eine seitengenaue Abrechnung möglich.
Würde mich nicht Wundern wenn es unter Linux bereits entsprechende (oder leicht anzupassende) Software geben würde.

mfG
Markus
Markus
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#8

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 19:58
Ich persönlich würde mir vielleicht erstmal die anderen Möglichkeiten angucken, aber wenn du wirklich hooken willst, gibt es dafür sehr viele Beispiele.... von der Druck-API habe ich absolut gar keine Ahnung, aber als Funktion mit der man es mal probieren könnte hört sich z.B. StartDoc gut an..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 20:02
[...]Der einzige installierte Drucker wäre dann ebenjener der zur Kasse bittet... [...]
Und du steuerst dann den Drucker selber an? Das wird ein Spaß

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Wie programmiere ich einen Drucker

  Alt 29. Sep 2010, 20:14
So wie ich das gesehen habe gibt es keinen Hook für das Drucken.

Es gibt ein Notify-Event

Wenn die anderen Drucker-Treiber auf dem System nicht installiert sind ... Wie willst du dann darauf drucken?

Der Link den ich hier gepostet habe führt zu Delphi-Sourcen, wo genau diese Abrechnung der Druckkosten umgesetzt wurde. aber vielleicht ist das zu einfach
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:40 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