Hi Peter,
You can change the default printer with CVI by using the SetPrintAttribute function and the attribute pasted below...
Constant: ATTR_PRINTER_NAME
Data Type: string (char *)
Description: This attribute specifies the printer to which output is sent. A NULL or empty string specifies the system's current printer.
If the specified printer does not exist, the system's current printer is used.
Valid for text printing and graphics printing.
However I don't know of a way to bring up a list of installed printers on a system and let the user select.. Maybe, if your list of printers is pretty static, you could create a list of available printers, and use some kind of popup to let the user select from them... This list could be maintained as some kind
of text file outside of the code to facilitate addition and removal of the printers...