ASP Development question: Install a printer on the client's machine?
March 17, 2008 12:29 PM   Subscribe

ASP.Net development question. Can I map to a printer on the client's machine from a web page?

I'm trying to build a web page that installs printer drivers by clicking on an icon. This is something I saw a consulting company show off years ago, and I've wanted ever since. They had a web page that showed floor plan of their offices with little printer icons located wherever physical printers were located. Click on the icon and that printer is added to your Windows client, and set as the default printer.

I think the consulting company was using some native component of Novell -- which is what they were trying to sell us at the time. I'm trying to recreate this in an ASP.Net page, and have had no luck. Google hasn't found me anything promising. Anyone have any idea?
My original thought was to shell out the command "RunDll32.EXE printui.dll,PrintUIEntry /in /n \\\\server\\printer".
posted by Eddie Mars to Computers & Internet (3 answers total)
 
There's the internet printing option that comes with IIS, but I don't know that it's terribly safe- when it first came out, it was one of those security holes in IIS that IIS 6 was meant to tighten by not enabling by default. That allows people to print via HTTP to a web resource. But you're talking about updating their local printer settings based on their actions on a web page.

The thing is, installing drivers- or running any clientside programs from a webpage- is generally "very bad". If you want to do it, you don't need asp.net per se; simply have your page include a vbscript/jscript that launches the printer installation, which should trigger a security warning from the browser when the user visits the page. From Technet's script center:
Set WshNetwork = CreateObject("WScript.Network")

WshNetwork.AddWindowsPrinterConnection "\\PrintServer1\Xerox300"
WshNetwork.SetDefaultPrinter "\\PrintServer1\Xerox300"
In terms of the right way to solve the problem... while your solution sounds cool, it's even better if your systems administrators use active directory or something cooler to ensure people get the closer physical printer, automatically. Users shouldn't have to think about which printer they want, they should just click "print" and the right things will happen.
posted by hincandenza at 1:00 PM on March 17, 2008


You'll need a native component to do what you're saying. That involves the ActiveX stack of technologies. And sure, shelling out like that would work (assuming it works...), but it'll have to be wrapped with a trusted activex component.
posted by cschneid at 2:04 PM on March 17, 2008


We use the Novell solution, and it involves extensions to the print spooler and a custom ActiveX control.

So no, there isn't an easy way.
posted by sbutler at 9:50 PM on March 17, 2008


« Older David Bowie   |   So basically this is all your fault, VISTA Newer »
This thread is closed to new comments.