代码之家  ›  专栏  ›  技术社区  ›  todd.pierzina

老式Windows 2000打印,或者端口名何时为计算机?

  •  1
  • todd.pierzina  · 技术社区  · 15 年前

    几年前,另一个聪明的程序员建立了一个VB.NET服务,可以打印到服务器安装的打印机上。作业查询数据库表以查看是否有任何打印请求,这些请求指定要打印的文件以及要发送到的打印机的名称。作业构造一个由三部分组成的命令行咒语并执行它;有点像这样:

    net use LPT2: IP_1.2.3.4 /user:domain\userid password >> netuse1.out
    copy someExistingFile.pdf LPT2 >> copy.out
    net use LPT2: /delete >> netuse2.out
    

    我们被要求对这份工作做其他不相关的改变,我们很高兴地答应了。只有我们部署和运行的作业的任何版本都不会打印。第一条语句失败,出现“系统错误67”。找不到网络名称。“

    作业已查询注册表以查找用户指定的打印机的端口名。它尝试的端口实际上就是我们在查看打印机属性时看到的端口“名称”。所以,嗯,没错。

    除了…等等,“端口名”到底是什么?它不是有效的IP地址(尽管它是打印机本身的IP地址,前缀为“IP”)。我在网上找不到任何关于打印机端口的信息,只有计算机/共享[和可选卷]。

    有人能解释一下这是否可行吗?

    [当然,没有人能够向我们提供实际仍然有效的服务版本的源代码。我们没有涉及这部分服务,只涉及打印之前的内容。客户发誓他们也没有。Grrr…]

    1 回复  |  直到 15 年前
        1
  •  1
  •   Craig Lebakken    14 年前

    如果您只需要一台直通打印机,您可以安装“通用/纯文本”打印机,将其分配到所需的端口,并使用“net use”命令中的名称共享它。