Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unterstützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!  oder rufen Sie uns einfach an.

Referenzen

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe

Alle vorhandenen Drucker auslesen

106009


Das nachfolgende Makro schreibt alle vorhandenen, installierten Drucker auf das erste Sheet in einer Arbeitsmappe. Sie müssen einfach nur den folgenden Code in ein Modul einfügen. Der Aufruf erfolgt über das Makro 'DruckerAuslesen'.

Sie können mit den ausgelesenen Druckern natürlich noch andere Sachen anstellen, als diese nur auf ein Tabellenblatt zu schreiben. Sinnvoll ist es, z. B. bei Blättern, deren Seitengröße auf A3 ausgelegt ist, den entsprechenden automatisch Drucker auszuwählen und auf diesem auszudrucken.

Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Declare Function RegOpenKeyEx _
 Lib "advapi32.dll" _
 Alias "RegOpenKeyExA" _
 ( _
 ByVal hKey As Long, _
 ByVal lpSubKey As String, _
 ByVal ulOptions As Long, _
 ByVal samDesired As Long, _
 phkResult As Long _
 ) _
 As Long

Declare Function RegEnumKeyEx _
 Lib "advapi32.dll" _
 Alias "RegEnumKeyExA" _
 ( _
 ByVal hKey As Long, _
 ByVal dwIndex As Long, _
 ByVal lpName As String, _
 lpcbName As Long, ByVal _
 lpReserved As Long, _
 ByVal lpClass As String, _
 lpcbClass As Long, _
 lpftLastWriteTime As FILETIME _
 ) _
 As Long

Declare Function RegCloseKey _
 Lib "advapi32.dll" _
 ( _
 ByVal hKey As Long _
 ) _
 As Long

_____________________________________________________________

Sub DruckerAuslesen()
 Dim aPrinter As Variant
 Dim iRow As Integer
 For Each aPrinter In fncEnumInstalledPrintersReg
 iRow = iRow + 1
 Cells(iRow, 1) = aPrinter
 Next aPrinter
End Sub
 

________________________________________________________

Public Function fncEnumInstalledPrintersReg() As Collection
 Dim tmpFunctionResult As Boolean
 Dim aFileTimeStruc As FILETIME
 Dim AddressofOpenKey As Long, aPrinterName As String
 Dim aPrinterIndex As Integer, aPrinterNameLen As Long
 Const KEY_ENUMERATE_SUB_KEYS = &H8
 Const HKEY_LOCAL_MACHINE = &H80000002
 Set fncEnumInstalledPrintersReg = New Collection
 aPrinterIndex = 0
 tmpFunctionResult = Not CBool _
 ( _
 RegOpenKeyEx _
 ( _
 hKey:=HKEY_LOCAL_MACHINE, _
 lpSubKey:="SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\PRINTERS", _
 ulOptions:=0, _
 samDesired:=KEY_ENUMERATE_SUB_KEYS, _
 phkResult:=AddressofOpenKey _
 ) _
 )
 If tmpFunctionResult = False Then Goto ExitFunction
 Do
 aPrinterNameLen = 255
 aPrinterName = String(aPrinterNameLen, CStr(0))
 tmpFunctionResult = Not CBool _
 ( _
 RegEnumKeyEx _
 ( _
 hKey:=AddressofOpenKey, _
 dwIndex:=aPrinterIndex, _
 lpName:=aPrinterName, _
 lpcbName:=aPrinterNameLen, _
 lpReserved:=0, _
 lpClass:=vbNullString, _
 lpcbClass:=0, _
 lpftLastWriteTime:=aFileTimeStruc _
 ) _
 )
 aPrinterIndex = aPrinterIndex + 1
 If tmpFunctionResult = False Then Exit Do
 aPrinterName = Left(aPrinterName, aPrinterNameLen)
 On Error Resume Next
 fncEnumInstalledPrintersReg.Add aPrinterName
 On Error Goto 0
 Loop
 Call RegCloseKey(AddressofOpenKey)
 '
 Exit Function
ExitFunction:
 If Not AddressofOpenKey = 0 Then _
 Call RegCloseKey(AddressofOpenKey)
 Set fncEnumInstalledPrintersReg = Nothing
End Function

Drucken

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der 
 Lösungsfindung?

  Nutzen Sie unser Anfrageformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
R
O
J
E
K
T
A
N
F
R
A
G
E
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Bestätigung erklären Sie sich mit der Verwendung von Cookies auf Excel-Inside Solutions einverstanden.
Weitere Informationen Ok