How to Get Default Printer Name
Posted on January 5, 2009
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 'System & API - How to Get Default Printer Name 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 Function RegGetString$(hInKey As Long, ByVal subkey$, ByVal valname$) Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long, 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 |