Noe;
xHarbour dispone de esta funcion:
GetPrinters()
Retrieves information about available printers.
Syntax
GetPrinters( [<lPortInfo>], [<lLocalPrinters>] ) --> aPrinterInfo
Arguments
<lPortInfo>
The default value for <lPortInfo> is .F. (false). If set to .T. (true), the function includes port information in the returned array.
<lLocalPrinters>
The default value for <lLocalPrinters> is .F. (false). If set to .T. (true), the function returns only information for local printers. Return
The function returns a one- or two-dimensional array. If <lPortInfo> is .F. (false), a one-dimensional array is returned. Each element contains a character string with the name of an available printer. If <lPortInfo> is .T., each element of the returned array is an array of four elements, holding character strings with additional printer information:
Array elements for additional printer information Element Description
1 Printer name
2 Port name
3 Printer type (e.g. Local/Network)
4 Printer driver
Description
The GetPrinters() function obtains information about printers that are currently available. If it is called without arguments, the function returns the names of all available printers. The list can be reduced to local printers only by specifying .T. (true) for <lLocalPrinters>. Additional information about port and printer driver can be retrieved when <lPortInfo> is set to .T. (true)
Lo que yo hago con esta funcion, es armar un xBrowse que muestra 1, 2 y 3 (arriba descriptos). De manera que el usuario realiza una multi seleccion, donde desea que se imprima tal o cual documento.
Luego la selección, la guardo en un archivo Hash_ini (tambien de xHarbour).
De manera que si alguna impresora se cambia, solo hay que realizar una nueva selección.
Desconozco si ambas funciones existen en Harbour
Saludos