vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Standardschacht eines beliebigen Druckers 
Autor: crosstravel
Datum: 14.09.17 09:33

Hallo zusammen,

zwischenzeitlich habe ich eine Möglichkeit gefunden, das Standard-Papierfach eines beliebigen Druckers auszulesen. Ich benutze dazu die DEVMODE-Funktionalität.


Gruss
Rainer


'---------------------------------------------------------------------
Public Sub ReadDevModeB(PrinterName As String, ByRef xdev As DEVMODEA)
'---------------------------------------------------------------------
 
    Dim nSize As Long          ' Size of DEVMODE
    Dim PrinterHandle As Long  ' handle to printer
    Dim aDevMode() As Byte     ' temporary DEVMODE
 
    ' ------------------------------------------------------
    ' Drucker-Handle ermitteln
    ' ------------------------------------------------------
 
    If OpenPrinter(PrinterName, PrinterHandle, 0&) Then
 
        ' --------------------------------------------------
        ' Größe der DevMode-Struktur ermitteln
        ' --------------------------------------------------
 
        nSize = DocumentProperties(Screen.ActiveForm.hWnd, PrinterHandle, _
          PrinterName, 0&, 0&, 0)
 
        ' --------------------------------------------------
        ' Speicher reservieren
        ' --------------------------------------------------
 
        ReDim aDevMode(1 To nSize)
 
        ' --------------------------------------------------
        ' DevMode-Struktur in temporäre Variable schreiben
        ' --------------------------------------------------
 
        nSize = DocumentProperties(Screen.ActiveForm.hWnd, PrinterHandle, _
          PrinterName, aDevMode(1), 0&, DM_OUT_BUFFER)
 
        ' --------------------------------------------------
        ' Temporäre Variable in DevMode-Struktur kopieren
        ' --------------------------------------------------
 
        Call CopyMemory(xdev, aDevMode(1), Len(xdev))
        xdev.dmDriverExtra = 0
 
        ' --------------------------------------------------
        ' Drucker schließen
        ' --------------------------------------------------
 
        ClosePrinter (PrinterHandle)
     End If
End Sub
 
' -----------------------------------------------------
' Default-Papierfach ermitteln
' -----------------------------------------------------
 
Public Sub GetDefaultBin(ByRef xdev As DEVMODEA)
    With Screen.ActiveForm
        DefaultFach = xdev.dmDefaultSource
    End With
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Standardschacht eines beliebigen Druckers2.638crosstravel08.09.17 18:56
Re: Standardschacht eines beliebigen Druckers1.833ModeratorDieter08.09.17 20:37
Re: Standardschacht eines beliebigen Druckers1.757crosstravel09.09.17 07:58
Re: Standardschacht eines beliebigen Druckers1.751crosstravel14.09.17 09:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel