Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prüfen, ob der Drucker installiert ist?

Prüfen, ob der Drucker installiert ist?
03.08.2005 14:43:52
Selma
Hallo Leute,
über die Schaltfläche drucke ich die akteulle Seite.
Vor dem Drucken soll geprüft werden, ob der Drucker: "\\LAPTOP\PDF-Drucker auf Le00:" installiert ist.
Wenn NICHT, dann den Drucker installieren und im Anschluss das Blatt drucken.
Wenn der Drucker existiert, dann einfach drucken.
Mein jetziger Code:

Private Sub CommandButton1_Click()
Application.ActivePrinter = "\\LAPTOP\PDF-Drucker auf Le00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'ActiveWindow.SmallScroll Down:=-18
End Sub

Wie mache ich das?
Danke im Voraus...
VG
Selma

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen, ob der Drucker installiert ist?
04.08.2005 07:45:17
bst
Morgen Selma,
ob bzw. wie man einen Drucker via VBA installieren kann weis ich nicht.
Feststellen ob er installiert ist geht, wenn auch nicht einfach.
Via Registry-Zugriff: http://www.die-schwimmers.de/vba009.htm
Oder via 'scheinbaren Zugriff auf win.ini', ein sehr raffiniertes Teil von Nepumuk, s.u.
(Ich hatte mal wieder das Problem dieses nicht mehr in der Recherche zu finden)
cu, Bernd
--
Option Explicit

Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" ( _
   ByVal lpAppName As String, _
   ByVal lpKeyName As String, _
   ByVal lpDefault As String, _
   ByVal lpReturnedString As String, _
   ByVal nSize As Long) As Long


Private Const MAX_PRINTERS = 16

Private strPrinterNames(MAX_PRINTERS) As String
Private strPrinterDrivers(MAX_PRINTERS) As String
Private strPrinterPorts(MAX_PRINTERS) As String
Private intPrinterCount As Integer

Public Sub prcGetPrinterList()
   Dim strBuffer As String
   Dim intIndex As Integer
   strBuffer = Space$(8192)
   GetProfileString "PrinterPorts", vbNullString, "", _
   strBuffer, Len(strBuffer)
   prcGetPrinterNames strBuffer
   prcGetPrinterPorts
   For intIndex = 0 To intPrinterCount
      Debug.Print strPrinterNames(intIndex), _
      strPrinterPorts(intIndex), _
      strPrinterDrivers(intIndex)
   Next
End Sub

Private Sub prcGetPrinterNames(ByVal strBuffer As String)
   Dim intIndex As Integer
   Dim strName As String
   intPrinterCount = 0
   Do
      intIndex = InStr(strBuffer, Chr(0))
      If intIndex > 0 Then
         strName = Left$(strBuffer, intIndex - 1)
         If Len(Trim$(strName)) > 0 Then
            strPrinterNames(intPrinterCount) = Trim$(strName)
            intPrinterCount = intPrinterCount + 1
         End If
         strBuffer = Mid$(strBuffer, intIndex + 1)
      Else
         If Len(Trim$(strBuffer)) > 0 Then
            strPrinterNames(intPrinterCount) = Trim$(strBuffer)
            intPrinterCount = intPrinterCount + 1
         End If
         strBuffer = ""
      End If
   Loop While (intIndex > 0) And (intPrinterCount < MAX_PRINTERS)
End Sub

Private Sub prcGetPrinterPorts()
   Dim strBuffer As String
   Dim intIndex As Integer
   For intIndex = 0 To intPrinterCount - 1
      strBuffer = Space$(1024)
      GetProfileString "PrinterPorts", strPrinterNames(intIndex), "", _
      strBuffer, Len(strBuffer)
      prcGetDriverAndPort strBuffer, strPrinterDrivers(intIndex), _
      strPrinterPorts(intIndex)
   Next
End Sub

Private Sub prcGetDriverAndPort(ByVal Buffer As String, _
   DriverName As String, PrinterPort As String)

   Dim intDriver As Integer
   Dim intPort As Integer
   DriverName = ""
   PrinterPort = ""
   intDriver = InStr(Buffer, ",")
   If intDriver > 0 Then
      DriverName = Left$(Buffer, intDriver - 1)
      intPort = InStr(intDriver + 1, Buffer, ",")
      If intPort > 0 Then
         PrinterPort = Mid$(Buffer, intDriver + 1, _
         intPort - intDriver - 1)
      End If
   End If
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige