Solved

Need to configure advanced printer preferences using script.

Posted on 2008-06-11
5
4,239 Views
Last Modified: 2008-08-02
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
Comment
Question by:Blowfelt82
  • 2
5 Comments
 
LVL 65

Accepted Solution

by:
RobSampson earned 500 total points
ID: 21764498
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
 
LVL 2

Expert Comment

by:JManicki
ID: 22694817
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
 
LVL 65

Expert Comment

by:RobSampson
ID: 22699461
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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
The viewer will learn how to count occurrences of each item in an array.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now