Citrix and Printer Names
This is similar to the post by Louis Beck on 1/13/2007.
Under Citrix, the session ID is appended to the printer name. The user can
then see (loop through PrinterNames) all printers for all sessions that have
been created.
EX: HP1 is the printer
PrinterNames will show
HP1 Session1
HP1 Session2
HP1 Session 3
etc.
The reality is that the user really only has acess to one of these printers.
Is there a way to determine when looping through Printer Names which ones
are avaiable to the user, and which ones are not?
Thanks
Under Citrix, the session ID is appended to the printer name. The user can
then see (loop through PrinterNames) all printers for all sessions that have
been created.
EX: HP1 is the printer
PrinterNames will show
HP1 Session1
HP1 Session2
HP1 Session 3
etc.
The reality is that the user really only has acess to one of these printers.
Is there a way to determine when looping through Printer Names which ones
are avaiable to the user, and which ones are not?
Thanks
This discussion has been closed.
Comments
experience with Citrix here, but have customers that use it successfully.
RB uses standard Windows API calls to enumerate the printers available to
the windows user account under which the application is running. Perhaps
with Citrix you need to configure the printer differently or need to
configure the user accounts differently.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
I am trying to work around the issue in code. While the Windows API
provides a list of printers, not all are avaiable to the user. When they go
to print to one of those devices, they get a message 'Screen is not a
printer device', which leads me to believe that somewhere in RB you are able
to capture whether the printer is 'real' or not. If I could test which
printers are 'real' for the user, I'd be able to work around the problem.
Thanks
Joe
I would try to solve this by configuring Citrix and/or security/user
accounts such that the correct printers are shown to each users. I do not
know Citrix, but for Windows you can configure groups/user accounts etc and
you can install printer drivers for specific accounts and then share them,
configure security for each printer etc.
I think testing every printer to see which are valid is going to be a slow
process. If you want to pursue that, have a look at the ppPrintr.pas unit.
You can probably use the global ppPrinters list to iterate over the printer
names, create a TppPrinter object and set the printer name, then try to get
access to the canvas.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com