Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2011
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 10-06-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.478
Poder: 21
newtron Va camino a la fama
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
Responder Con Cita
  #3  
Antiguo 13-06-2011
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener id de la Sesion de Windows pedrnsanmar API de Windows 4 13-05-2008 16:32:11
Obtener nombre de la sesion de windows jorgegetafe Varios 1 03-10-2007 21:48:19
Nombre de impresora erfedecai Impresión 5 21-06-2006 16:24:57
obtener el nombre de impresora de printdialog Rafa Impresión 1 29-10-2003 13:27:14
Como obtener la duracion de una sesión juan Internet 6 12-05-2003 15:43:04


La franja horaria es GMT +2. Ahora son las 20:16:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi