[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4956
  • Last Modified:

Need to configure advanced printer preferences using script.

I have a printer which I need to configure every time a user logs into an application...

Specifically I am looking for code which can modify the settings found in...

START > PRINTERS AND FAXES > {RIGHT CLICK A PRINTER} > {PuSh 'PRINTING PREFERENCES' Button} > SELECT 'DOCUMENTS' TAB > EXPAND 'PAPER/OUTPUT' OPTION ...

From here I need to programatically modify the settings in here, specifically I am interested in the 'Top Adjustment' setting.
0
Blowfelt82
Asked:
Blowfelt82
  • 2
1 Solution
 
RobSampsonCommented:
Hi, you cannot modify such properties via VBScript.

What I do in such cases, is set up a Printing Preferences QuickSet configuration on the Print Server.  You can do this directly on the print server in the Printing Preferences section, and the Advanced --> Printing Defaults section.

This QuickSet then gets pushed out to all clients that are connected to it.  Then, before the user loads that application, then need to set their own Printing Preferences to that pre-created QuickSet, and then run the application, and then change back the Printing Preferences.

It's a bit of a pain, but as least with a QuickSet configuration, you can set up multiple settings at the click on one button.

Regards,

Rob.
0
 
JManickiCommented:
Well Rob, technically that's not true.

It is almost true that you can't directly set those options using VBSCript.  The only reason why is that the Registry modification methods available to VBScript cannot easily handle modifying a very large REG_BINARY value which is how Printer Preferences are stored, but you CAN do it with a VBScript login script using some help from REGEDIT.EXE and an exported .REG file.  It's fairly easy to do and I'm automagically configuring dozens of printers and print preferences each day with this method.

I'm printer preference options are stored in the Registry under HKEY_CURRENT_USER\Printers\DevModePerUser and also HKEY_CURRENT_USER\Printers\DevMode2.   I think the DevModePerUser is the configuration of the printer itself (or maybe just the defaults?) and the DevMode2 is the Printing Preferences but I'm not 100% on that so I always use both.

In those keys, you should see an entry for every printer name that's installed on your computer.  As I said, I think DevMode2 is for Printing Preferences so until you actually change them from the default, there may not be an entry there for a specific printer.

What I do is create a printer.  Modify all settings that I need.  Next I use REGEDIT.EXE to browse to and export the HKEY_CURRENT_USER\Printers\DevModePerUser and HKEY_CURRENT_USER\Printers\DevMode2 registry keys.  One I export them, I use a text editor and create separate files for each printer containing the REG_BINARY values from EACH key for only that printer.  Make it easy on yourself and name the files the same name as the printer if at all possible.

Once you have the configurations for all your printers, save/copy them to a shared folder accessible to your users.  In the login script, just add the command to use REGEDIT.EXE to import your .REG file.

If you're using VBSCript, use the following command with the WScript Run Method:

Set WshShell = Wscript.CreateObject("WScript.Shell")
WshShell.Run "REGEDIT.EXE /S \\SERVERNAME\SHARENAME\REGFILENAME.REG",0,True

Substitue SERVERNAME with the name of your server, SHARENAME with the name of the shared folder that the .REG files are in and REGFILENAME with the name of the .REG file itself.
0
 
RobSampsonCommented:
JManicki, well, you've certianly done your homework there, very well done!

I apologise for leading you down the wrong track.

So it can be done with a bit of manual work, certianly not what you'd call dynamic (initially), but it definately gets the job done once you've got your *.reg files ready for importing.

Nice work.

Regards,

Rob.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now