如何创建新端口并将其分配给打印机

2023-12-14

我们有一个虚拟打印机(由第三方提供)被分配给无效的本地打印机端口。打印机始终是本地的(我们不处理远程打印服务器或类似的东西)。我想创建一个新的本地端口(特定于我们的应用程序),然后将打印机配置为分配给该端口,而不是打印驱动程序安装程序选择的随机(通常是不正确的)端口。

我相信我需要使用XcvData and/or Xcv数据端口函数可以做到这一点,但我对如何做有点不知所措。

有人有关于如何进行的示例或指示吗?

我想我需要执行以下操作:

  1. 检查以确保端口名称尚不存在(我可能可以使用枚举端口为此,但我不确定这是最好的方法,因为我还必须创建端口)
  2. 创建端口名称(如果存在)
  3. 更改打印机配置以使用新端口

以及卸载:

  1. 删除端口

哇,看起来这个问题难倒了所有人......经过一番挖掘,以下是如何做到这一点:

DWORD CreatePort(LPWSTR portName)
{
      HANDLE hPrinter;
      PRINTER_DEFAULTS PrinterDefaults;
      memset(&PrinterDefaults, 0, sizeof(PrinterDefaults));

      PrinterDefaults.pDatatype = NULL;
      PrinterDefaults.pDevMode = NULL;
      PrinterDefaults.DesiredAccess = SERVER_ACCESS_ADMINISTER;

      DWORD needed;
      DWORD rslt;


      if (!OpenPrinter(",XcvMonitor Local Port", &hPrinter, &PrinterDefaults))
          return -1;

      DWORD xcvresult= 0;
      if (!XcvData(hPrinter, L"AddPort", (BYTE *)portName, (lstrlenW(portName) + 1)*2, NULL, 0, &needed, &xcvresult))
            rslt= GetLastError();

      if (!ClosePrinter(hPrinter))
          rslt= GetLastError();

      return rslt;
}

在给定打印机上设置端口相对简单 - OpenPrinter()、GetPrinter() 和 PRINTER_INFO_2、SetPrinter()、ClosePrinter()

Cheerio.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建新端口并将其分配给打印机 的相关文章

随机推荐

  • 如何将异步/标准库 future 转换为 futures 0.1?

    我想使用async函数逐步解析入站流 但 actix web 需要impl Future
  • 触发dialog.close 后,Word 加载项停止工作。办公JS

    我一直在开发一个 Office365 应用程序 在该应用程序中我打开了一个对话框 并在进行某种活动后使用dialog close 关闭对话框 它工作得很好 但功能区按钮停止工作 下次它不会再显示相同的对话框 Office context u
  • php中如何显示上传后的图片?

    将图像上传到文件夹后 怎么显示图片 这是我的 upload php
  • 打字稿回调函数中的“this”范围

    我无法理解 这个 上下文在打字稿中是如何工作的 我无法访问方法中的类成员 下面是我的代码 class adopterDetailCtrl public adopter IAdopter public router any static in
  • Django Admin 看起来很奇怪

    这是 Django 3 的新安装 我得到了面板的管理员外观 我在浏览器控制台中没有错误 我已经做了 python3 manage py collectstatic 一条线索 为了能够在没有 apache 500 错误的情况下看到这个管理面板
  • 如果没有 @Provides 注释的方法,则无法提供 >

    我正在尝试创建一个像这样的视图模型模块example但我遇到了这个错误 错误 如果没有 Provides 注释的方法 则无法提供 java util Map javax inject Provider gt 我遵循了所有示例 这是我的代码
  • 在 Visual Basic.NET 中构造对象而不对其进行赋值

    我已经使用 VB net 好几年了 但总是遇到一些我不知道如何解决的小问题 好奇心终于战胜了我 所以我现在问 有没有一种方法可以创建一个对象而不分配它 例如 假设我有一个 Engine 类 我想实例化它并让它立即执行它需要执行的任何操作 如
  • Windows 上的 symfony2 assetics yui 压缩器(路径语法)

    我正在尝试让 assetics 与 yui 压缩器一起运行 如果正在运行 则使用 sass 目前 两者都不起作用 当从 config yml 和 twig 模板中删除所有过滤器时 它可以工作并且php app console assetic
  • C# 第二维数组到一维数组的引用

    我有一个可以接受一维数组的函数 double 作为参数 而我的源数据是一个二维数组 double 的 cnt 3d 点数量 就像这样 double points new double 3 cnt 但我真正想做的是将三个第二个暗淡数组中的每一
  • ASP.Net Core WebApi 中的非属性路由

    我需要构建项目 实现由供应商应用程序预定义的 REST API 将使用它 有大约数千个 REST 资源 其中一些操作由不同的 HTTP 动词 POST GET PUT DELETE 等 定义 因此 理想情况下 对于每个资源 我应该有一个像这
  • 是否可以将“选择”块中出现的元素限制为最大?

    我需要解决以下问题 伪算法 你有四个元素 elm1 elm2 elm3 elm4 elm1 出现 0 2 次 elm2 出现 0 1 次 elm3 出现 0 n 次 elm4 出现 0 n 次 它们可以以任何方式订购 但仅限于给定的数量 伪
  • 如何使用 jQuery 和 PHP 在单独的行上显示 JSON 响应

    我正在使用 AJAX 提交表单 并希望在页面上显示信息摘要 以便用户可以在提交之前确认信息 我无法将结果显示在多行上 关于最好的方法有什么建议吗 这是 PHP return message First Entry POST Name1 Se
  • c++ win32:如何设置窗口的背景颜色?

    我可以在注册课程时设置背景颜色 例如 wincl hbrBackground CreateSolidBrush RGB 202 238 255 RegisterClassEx wincl 但是我该如何对使用 CreateWindow 函数创
  • 在 Go 中将时区解析为 Location 结构

    给定一个时区 例如 EDT 或 CEST 有没有办法获得time Location参考使用它func t Time In loc Location Time 可以初始化例如位置 中欧夏令时time LoadLocation Europe B
  • 根据 WooCommerce 3+ 中的用户角色添加自定义我的帐户菜单项

    我正在使用 WordPress 和 WooCommerce 并且我已关注这篇文章https rudrastyh com woocommerce my account menu html在 WooCommerce 我的帐户菜单中添加新菜单项
  • 使用 CSS 定位 DIV 的第一个元素

    我在一个表格内有一个所见即所得编辑器 该编辑器放置在 div 内 因此 div class mydiv li table My WYSIWYG table li 在我的所见即所得中 有更多的表 但是我只想定位第一个表 我知道我可以为该表分配
  • textView setText() NullPointerException

    我有一个几乎完全香草的应用程序 我想做的就是更改 textView 的文本 但它给了我一个 NullPointerException 我没有 XML 配置 没有添加方法 没有什么特别的 我检查了我的类 它指向正确的 XML 并且 XML 中
  • mysql:如何 INNER JOIN 一个表,但将连接限制为 1 个具有最高投票或计数的结果?

    我有 2 张桌子 一个是项目 另一个是对这些项目的投票 Items table has item id name post date Votes table has votes id item id answer total yes tot
  • 从 Google 表格填充 HTML 表单

    我对这一切还很陌生 但我希望直接使用 Google 电子表格中的名称填充 Apps 脚本 Web 应用程序 HTML 下拉表单条目 到目前为止 我已经能够从电子表格的 A 列返回一组名称 此外 JS 的 填充表单 部分成功填充了 HTML
  • 如何创建新端口并将其分配给打印机

    我们有一个虚拟打印机 由第三方提供 被分配给无效的本地打印机端口 打印机始终是本地的 我们不处理远程打印服务器或类似的东西 我想创建一个新的本地端口 特定于我们的应用程序 然后将打印机配置为分配给该端口 而不是打印驱动程序安装程序选择的随机