Win32 functions give some ways:
The PrintDlg function can be used with flag PD_RETURNDEFAULT. In this case the dialog is not displayed, though information is returned.
The EnumPrinters function returns various printer information, e.g.:
Name: Epson Stylus COLOR 660 ESC/P 2
Shared as: Epson
Port: LPT1:
Driver: Epson Stylus COLOR 660 ESC/P 2
Processor: WinPrint
Data type: RAW
Number of jobs: 0
The EnumPrinterData function returns configuration data like this:
InitDriverVersion: 1280
Model: Epson Stylus COLOR 660 ESC/P 2
TrayFormTable: Auto sheet feeder
The [Printing and Print Spooler] Win API section contains a variety of functions for accessing printers, drivers, ports, printer jobs etc.
Some of the functions along with code samples you can find on my site "Using Win32 Functions in Visual FoxPro" at
http://www.news2news.com/vfp Though most of that stuff is in membership area.