engranaje
10-06-2011, 13:27:45
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?
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?