![]() |
obtener nombre de impresora en sesion
Hola un saludo a todos, estoy teniendo problemas para obtener el nombre de una impresora que necesito para poder utilizar openprinter:
basicamente hago esto: printer.GetPrinter(pDevice, pDriver, pPort, hD); para posteriormente (OpenPrinter(PChar(Pdevice), hPrn, nil) esto funciona correctamente en local pero cuando trabajo con impresoras en citrix o en terminal server el nombre en pdevice que obtengo es del tipo "impresora in sesion winspool" cuando debería ser por ejemplo "impresora in sesion 1" y me da error. He probado a obenter el nombre de la impresora directamente de printers de este modo: strpcopy(pDevice, printer.printers[printer.printerindex]); pero el caso es que el nombre que obtengo en ese caso el de tipo "impresora in session 1 on puerto" y tampoco me sirve. Por supuesto puedo tratar la string pero entiendo que debe haber una manera de conseguir el nombre que necesito. ¿Teneis alguna idea? |
Hola.
Estando conectado por terminal server el nombre de la impresora es tal y como dices "Impresora on .....". Si el problema es seleccionar la impresora puedes buscar la cadena del nombre de la impresora dentro de las impresoras disponibles y usar Printer.PrinterIndex para seleccionarla. Saludos |
Gracias por tu respuesta finalmente he conseguido el nombre que necesitab:
type TPrinterDevice = class Driver, Device, Port: string; end; TPrinterDevice(Printer.Printers.Objects[Printer.PrinterIndex-1]).Device |
| La franja horaria es GMT +2. Ahora son las 20:14:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi