如何使用.NET安装打印机?

问题描述:

我有一个.INF虚拟打印机,我需要从.NET应用程序安装。在使用批处理脚本之前,我已经完成了这个工作,但我正在寻找一段代码来在.NET Framework中执行此操作。如何使用.NET安装打印机?

没有什么讲究打印机.INF的,这样从一个INF在C#或VB.NET安装打印机的任何代码工作。

我相信这是可能通过互操作,以原生Win32 API的,但我发现它非常非常容易只是使用的System.Diagnostics.Process()通过调用到printui.dll:

rundll32.exe printui.dll,PrintUIEntry /?

也许你已经在使用中所提到的批处理脚本,但如果没有参数被记录在这里:PrintUI.DLL User's Guide and Reference

只是一定要测试它反对你需要支持所有的操作系​​统。有些选项不是在所有Windows版本中都存在,或者已被重命名(尽管我认为它们是更深奥的选项 - 安装.INF可能会全面工作)。

+0

+1的比我更好的答案;) – bsneeze 2009-05-04 02:37:29

+1

链接断开=( – HiTech 2017-05-05 17:21:39

这是不是理想的解决方案,但如果没有人回答,您可以创建一个临时批处理文件并通过C#/ VB.NET调用该文件。

别人可能会知道一个更自然的方式来做到这一点。

您将需要使用包装或的PInvoke本地COM对象设置的API。

您将要查看可用的WMI对象。这些可以更好地控制本地机器设置。看一下微软的WMI code creator,我相信这会产生一些示例代码,你可以利用它来解决你的问题。

+0

+1:很好的工具... – Dscoduc 2010-04-07 21:51:58

+0

呀真棒工具 – Raymund 2010-09-17 01:55:06

Administering Printer Settings in C# for Flexible Printing

看到这篇文章,它使用MS平台SDK DLL称为PRNADMIN来管理打印机,打印机驱动程序,打印机端口,...等等。

我个人使用它在一个商业项目来安装打印机驱动程序和打印机端口更改为本地端口拦截后记。它就像一个魅力。

或者您可以使用来在C Windows中的一些预装的VB脚本:\ WINDOWS \ SYSTEM32 \ Printing_Admin_Scripts这里是他们的文章:

http://technet.microsoft.com/en-us/library/cc771846.aspx

我总是回复到下面的链接以编程方式安装打印机'。

http://support.microsoft.com/kb/314486

http://www.robvanderwoude.com/2kprintcontrol.php