在 C# 中将本地打印机设置为默认值的最佳方法

本文关键字:默认值 最佳 方法 设置 打印机 | 更新日期: 2023-09-27 18:35:25

我想在 C# 中将本地打印机设置为默认值

我在谷歌搜索上找到了两种方式:

  1. 使用 IWshRuntime Library 和 IWshNetwork_Class
  2. [DllImport("Winspool.drv")]私有静态外部布尔值 SetDefaultPrinter(字符串打印机名称);

我在 VB 中找到了 #1 http://social.msdn.microsoft.com/Forums/vstudio/en-US/1ed0f29a-a5ff-4328-9c0f-f431f75fccbc/set-defualt-printer?forum=vbgeneral

它的 C# 代码:

new IWshRuntimeLibrary.IWshNetwork_Class().SetDefaultPrinter(printerName)

因此,#1 是 COM 互操作调用。 #2 是一个简单的 dll 调用。

我都试过了,都工作正常。那么,我应该使用哪个?我是否需要为 #1 安装单独的库(在客户端计算机上)?

在 C# 中将本地打印机设置为默认值的最佳方法

我会选择直接DLL调用。 我敢打赌,IWshRuntimeLibrary调用Winspool.drv内部,您将COM层从图片中剔除。 Windows计算机似乎不太可能正确注册Windows脚本主机,但似乎更不可能Winspool.drv不可用。

我认为.NET以托管解决方案的形式提供了您正在寻找的东西。尝试查看 LocalPrintServer 类,特别是 DefaultPrintQueue 属性。这是一些示例代码