Get Default Printer Name

'Add a module to your project (In the menu choose Project -> Add Module, Then click Open)
'Insert this code to the module :

Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey _
As Long, ByVal lpSubKey As String, ByVal dwReserved As Long, ByVal samDesired _
As Long, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName$, ByVal lpdwReserved As Long, _
lpdwType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Public Const HKEY_CURRENT_CONFIG As Long = &H80000005

'Insert the following code to your form:

Function RegGetString$(hInKey As Long, ByVal subkey$, ByVal valname$)
Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long
Dim R As Long
RetVal$ = ""
Const KEY_ALL_ACCESS As Long = &HF0063
Const ERROR_SUCCESS As Long = 0
Const REG_SZ As Long = 1
R = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_ACCESS, hSubKey)
If R <> ERROR_SUCCESS Then GoTo Quit_Now
SZ = 256: v$ = String$(SZ, 0)
R = RegQueryValueEx(hSubKey, valname$, 0, dwType, ByVal v$, SZ)
If R = ERROR_SUCCESS And dwType = REG_SZ Then
RetVal$ = Left$(v$, SZ - 1)
Else
RetVal$ = "--Not String--"
End If
If hInKey = 0 Then
R = RegCloseKey(hSubKey)
End If
Quit_Now:
RegGetString$ = RetVal$
End Function


Private Sub Form_Load()
Dim GetCurrPrinter As String
GetCurrPrinter = RegGetString$(HKEY_CURRENT_CONFIG, _
"System\CurrentControlSet\Control\Print\Printers", "Default")
MsgBox GetCurrPrinter
End Sub

Go Back