Solved

Printer Commands

Posted on 2012-03-19
23
530 Views
Last Modified: 2012-04-16
I need to put the following initialiazation string in the "Begin Print Job" field as per attachment.

<1B>%-12345X@PJL<20>ENTER<20>LANGUAGE=POSTSCRIPT<0A01>M%PS-Adobe<0A>(LexForm)run<20>Bs<0A20>

I already have a little script to do the separator page. How can I modify it

strComputer = "??????print02"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters =  objWMIService.ExecQuery("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
      ObjPrinter.SeparatorFile = "\\aupriprint02\lexform\lexform.sep"
      objPrinter.Put_
Next

Wscript.echo "Done"
Printer.bmp
0
Comment
Question by:Bianchi928
  • 13
  • 10
23 Comments
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Have you looked at the objPrinter properties?  Is there a property that can be associated with the Begin Print Job data?  If so, then assign your string to that property.
0
 

Author Comment

by:Bianchi928
Comment Utility
Hi,

I've already done all of that and there wasn't any, hence my question.

Cheers
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Have you tried SendKeys?
0
 

Author Comment

by:Bianchi928
Comment Utility
No never..Can you please eleborate on how to ? Thanks
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Here is a link to an EE article/tutorial (in Jscript):
http://www.experts-exchange.com/Programming/System/Windows__Programming/A_2449-Using-SendKeys-to-Automate-Repetitive-Tasks.html

Basically, you use the AppActivate and SendKeys methods of a Wscript.Shell object.

Your job is made a bit easier, since, you can use Alt+J ("%J") key combination to set focus to the Begin Print Job textbox control.
0
 

Author Comment

by:Bianchi928
Comment Utility
Hi there !!

You're definitely on the right track. I need a kick start . Just give me a few start lines for my VBscript on how to AppActivate the "Begin Print Job" box. I think I understand how to send the keys then.

Thanks heaps
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate "U119c2-CostartDocuments Properties"
WshShell.SendKeys "%J"
WshShell.SendKeys "<1B>%-12345X@PJL<20>ENTER<20>LANGUAGE=POSTSCRIPT<0A01>M%PS-Adobe<0A>(LexForm)run<20>Bs<0A20>"

Open in new window

0
 

Author Comment

by:Bianchi928
Comment Utility
Okay..I can see what you mean now. How does "%J" related to "Begin Print Job". I ran the little script you gave me and nothign is written to "Begin Print Job".

Thanks
Cheers
0
 

Author Comment

by:Bianchi928
Comment Utility
I tried the following  - no sucess

Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate "Printers and Faxes"
Wscript.sleep 100
WshShell.AppActivate "U119c2-CostartDocuments"
Wscript.sleep 100
WshShell.AppActivate "U119c2-CostartDocuments Properties"
Wscript.sleep 100
WshShell.AppActivate "Printer Commands"
Wscript.sleep 100
WshShell.SendKeys "%J"
WshShell.SendKeys "<1B>%-12345X@PJL<20>ENTER<20>LANGUAGE=POSTSCRIPT<0A01>M%PS-Adobe<0A>(LexForm)run<20>Bs<0A20>"
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
The %J string is the equivalent to you pressing Alt+J at the dialog.  It should set focus to the textbox to the right of the Begin Print Job label.

Why are there so many AppActivate methods being invoked?  The activation of the dialog must immediately precede any SendKeys methods.

What do you see when my script ran?

What causes your dialog box to appear?
0
 

Author Comment

by:Bianchi928
Comment Utility
Okay..I have a script called zzz.vbs which contains (your code) and I've copied it on to the printer server . There's a printer called U119c2-CostartDocuments. When I ran your script, I can see wscript running in Task Manager. It doesn't come with any error at all. When I check
U119c2-CostartDocuments Properties, Printer Commands, Begin Print Job, there's nothing in this field.



Cheers
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 45

Expert Comment

by:aikimark
Comment Utility
How do you open the properties dialog window?

My code assumes this dialog window is open.
0
 

Author Comment

by:Bianchi928
Comment Utility
Usually , I will just right click on U119c2-CostartDocuments.
0
 

Author Comment

by:Bianchi928
Comment Utility
and select Properties
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
What happens when you run the script after opening the dialog window?
0
 

Author Comment

by:Bianchi928
Comment Utility
Select U119C2-CostarDocuments

I right click the Properties, Click Printer Commands and the Begin Print Job box is focussesd
Ran the script , nothing happens.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
If you are on the correct tab, does pressing Alt+J set the focus on the correct textbox?
0
 

Author Comment

by:Bianchi928
Comment Utility
I've done that too and still nothing.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
>>still nothing
Does that mean that if the cursor is in another textbox on that dialog tab, it will not change focus to the Begin Print Job textbox?

If we can't get the sendkeys to work, the only other solution path I can think of is to look at the registry as a place where these strings are stored.
0
 

Author Comment

by:Bianchi928
Comment Utility
I even tried that..Have the the focus to another field and then using ALT J. It does focus back to Begin Print Job. I alkso checked and there's any registry entried for that.

Cheers
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
What kind of device is this?
0
 

Accepted Solution

by:
Bianchi928 earned 0 total points
Comment Utility
Anyway, I've already cut and paste the init strings for all the printers. It had to be done urgently.
0
 

Author Closing Comment

by:Bianchi928
Comment Utility
That's the only way I could fix the problem
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

This script will sweep a range of IP addresses (class c only, 255.255.255.0) and report to a log the version of office installed. What it does: 1.)      Creates log file in the directory the script is run from (if it doesn't already exist) 2.)      Sweep…
This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

771 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

10 Experts available now in Live!

Get 1:1 Help Now