Vorm Drucken eine Meldung ausgeben!

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Cheffboss.

    Vorm Drucken eine Meldung ausgeben!

    Moin! :)
    Ich möchte gerne wissen, wie ich den Druckerstatus überprüfen kann.
    Denn ich habe vor, wenn jemand mit dem Standard-Drucker druckt.
    Das dann eine Meldung erscheint "Möchten Sie den Druckauftrag wirklich ausführen?".
    Außerdem sollte auch festgestelt werden ob es ein Farbdruck/oder Schwarweißdruck ist.
    Wäre cool, wenn mir jemand dabei helfen kann!
    Da Googel mich nicht besonders geholfen hat.
    BIG THX
    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss Sieh Dir mal im PrintDialog die PrinterSettings an.
    Drucken mehrseitiger Dokumente
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Danke, für deine schnelle Antwort. :)
    Leider hilft mir dies nicht weiter...
    PrintDocument1_PrintPage
    Da ich Systemweit abfragen muss, was gedruckt wird!
    Oder auch womit! z.B MS-Word/Firefox usw..
    Da das Drucken nicht in der Anwendung als Code im
    „Handles PrintDocument1.PrintPage“ steht.
    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Da ich Systemweit abfragen muss, was gedruckt wird!
    Fang mit einer belastbaren Aufgabenstellung / Problembeschreibung an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Aufgabenstellung:
    Ich möchte das vor dem Drucken eine Meldung erscheint, in der gefragt wird ob
    gedruckt werden soll!
    Außerdem möchte ich auch wissen ob es ein Farb/Schwarzweiß druck ist.
    Und wieviele Seiten gedruckt werden.
    Der Drucker soll Systemweit abgefragt werden.
    Egal ob in Word oder Firefox!
    Ist dies überhaupt möglich? ?(
    Visual Basic.NET 8o
    MS-SQL
    8o
    Wenn ich dich richtig verstehe, willst du sobald ein Druckauftrag erteilt wurde, erstmal ein PopUp mit den Details des Druckauftrages sehen?

    Das lässt sich AFAIK nur mit einem Hook machen(spoolsv.exe ist dein Ziel)
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    @Cheffboss Etwas besser, aber leider nicht gut.

    Cheffboss schrieb:

    Da das Drucken nicht in der Anwendung als Code im „Handles PrintDocument1.PrintPage“ steht.
    Was habe ich darunter zu verstehen?
    Soll das ein Drucker-Spooler oder so was werden?
    ---------------
    Irgendwo muss ja Dein Druckauftrag starten, z.B. bei einem Button_Click. Genau da kannst Du fragen, ob wirklich gedruckt werden soll.
    Wenn vor dieser User-Abfrage eine Drucker-Abfrage erforderlich ist, musst Du die Reihenfolge der Schritte genau benennen und Deine Aufgabenstellung präzisieren.
    Zur Abfrage der Drucker:

    VB.NET-Quellcode

    1. For Each printer In PrinterSettings.InstalledPrinters ' Shared Property
    2. Me.ListBox1.Items.Add(printer.ToString())
    3. Next
    Zur Abfrage der Farbtauglichkeit:

    VB.NET-Quellcode

    1. Using dlg = New PrintDialog
    2. If dlg.PrinterSettings.SupportsColor Then
    3. MessageBox.Show("Farbe")
    4. Else
    5. MessageBox.Show("Schwarz-Weiß")
    6. End If
    7. End Using
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Und das Programm reagiert auch wenn Word oder FireFox einen Druckauftrag starten? Er will ja auch dann eine Meldung bekommen. Also macht es so keinen Sinn.

    Ich wüsste da echt nur die spoolsv zu hooken.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    @NoIde
    Genau, vorm Druckerauftrag soll ein PopUp mit Informationen angezeigt werden.
    Ich werde mich über spoolsv.exe informieren. :)

    @RodFromGermany
    Das Drucken soll Systemweit ermittelt werden.
    Und nicht nur im Programm selbst! :)

    @an alle
    Also wäre das mit spoolsv möglich? ?(
    Visual Basic.NET 8o
    MS-SQL
    8o
    Du musst den Process dieser Anwendung hooken, das sollte klappen.

    Hier findest du Informationen zu Hooks:
    docs.microsoft.com/en-us/windows/desktop/winmsg/hooks
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NoIde“ ()

    Definiere

    Cheffboss schrieb:

    Das Drucken soll Systemweit ermittelt werden.
    Und
    Fang mit einer belastbaren Aufgabenstellung / Problembeschreibung an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Ich habe nun einen neuen Beitrag erstellt.
    In dieser alle wichtigen Informationen drin stehen. :)

    @NoIde
    Leider, ist das spoolsv zu hooken für mich noch zu schwer. ;(
    Habe heute den ganzen Tag nach sinvollen Informationen gesucht.
    Ich habe im neuen Beitrag zwei Links gepostet.
    Der Code findet heraus das man einen Druckauftrag startet,
    nur das abbrechen geht nicht.


    @an alle
    Suche Helfer, gegen Bezahlung: :thumbup:
    VB.NET Programmierer für Druckeraufgaben(Gegen Bezahlung!)
    Visual Basic.NET 8o
    MS-SQL
    8o