热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在windows中追加/删除虚拟打印机实例教程

这篇文章主要介绍了在windows中追加删除虚拟打印机实例教程,需要的朋友可以参考下

由于项目需要在windwos系统中添加多台虚拟打印机(能够正常打印出纸),查找了一下系统函数。

  使用 rundll32 printui.dll,PrintUIEntry,在CMD中运行,在弹出框中得到以下提示。  

用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile]

/a[file] 二进制文件名
  /b[name] 基本打印机名
  /c[name] 如果操作在远程机器上,unc 机器名
  /dl 删除本地打印机
  /dn 删除网络打印机连接
  /dd 删除打印机驱动程序
  /e 显示打印首选项
  /f[file] inf 文件或输出文件
  使用 /f 指定的 INF 文件可能依赖的 INF 文件的 /F[file] 位置
  /ga 添加每个机器打印机连接(用户登录时此连接将传播到用户)
  /ge 枚举每个机器打印机连接
  /gd 删除每个机器打印机连接(用户登录时此连接将被删除)
  /h[arch] 驱动程序体系结构,为下列之一: x86 或 x64 或 Itanium
  /ia 用 INF 文件安装打印机驱动程序
  /id 用添加打印机驱动程序向导安装打印机驱动程序
  /if 用 INF 文件安装打印机
  /ii 用带 INF 文件的添加打印机向导安装打印机
  /il 用添加打印机向导安装打印机
  /in 添加网络打印机连接
  /ip 使用网络打印机安装向导安装打印机
  /j[provider] 打印提供程序名称
  /k 将测试页打印到指定的打印机,不能安装打印机时的命令组合
  /l[path] 打印机驱动程序源路径
  /m[model] 打印机驱动程序型号名
  /n[name] 打印机名
  /o 显示打印机队列查看
  /p 显示打印机属性
  /q 安静模式,不显示错误信息
  /r[port] 端口名
  /s 显示服务器属性
  /Ss 将打印机设置存到一个文件
  /Sr 从一个文件还原打印机设置

   储存或还原必须放在命令结尾的打印机设置选项标志:

  2  PRINTER_INFO_2
  7  PRINTER_INFO_7
  c  颜色配置文件
  d  打印机数据
  s  安全描述符
  g  全局 DevMode
  m  最低设置
  u  用户 DevMode
  r  解决名称冲突
  f  强制使用名称
  p  解析端口
  i  驱动程序名称冲突
  /u 如果已安装,则使用现有的打印机驱动程序
  /t[#] 起始的以零为基础的索引页
  /v[version] 驱动程序版本,为下列之一:“类型 2 - 内核模式”或“类型 3 - 用户模式”
  /w 如果在 INF 中找不到指定的驱动程序,则提示用户
  /y 将打印机设置为默认打印机
  /Xg 获得打印机设置
  /Xs 设定打印机设置
  /z 不要自动共享这台打印机
  /Z 不要自动生成打印机名
  /K 更改 /h 的含义,使 x86 或 x64 或 Itanium 接受 2、3、4,并更改 /v 的含义,使“类型 3 - 用户模式”接受 3
  /Z 共享这台打印机,只能跟 /if 选项一起使用
  /? 帮助信息
  @[file] 命令行参数文件
  /Mw[message] 确认命令之前显示警告消息
  /Mq[message] 确认命令之前显示确认消息
  /W[flags] 指定向导(APW 和 APDW)的标志和切换
  r  使向导可以从上一页重新启动
  /G[flags] 指定全局标志和切换
  w  抑制安装程序驱动程序警告 UI (超级静声模式)

例如:

   运行服务器属性:

rundll32 printui.dll,PrintUIEntry /s /t1 /c\\machine
  运行打印机属性:
rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer
  本地运行添加打印机向导:
rundll32 printui.dll,PrintUIEntry /il
  在 \\machine:
rundll32 printui.dll,PrintUIEntry /il /c\\machine 运行添加打印机向导
  运行队列查看:
rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer
  运行 INF 安装:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f c:\infpath\infFile.inf /r "lpt1:" /m "Brother DCP-128C"
  运行 INF 安装(具有 INF 依赖关系)。在此示例中,prnbr002.inf 依赖于 ntprint.inf
rundll32 printui.dll, PrintUIEntry /ia /m "Brother DCP-128C" /K /h x64 /v 3 /f "c:\infpath\prnbr002.inf" /F "c:\infpath\ntprint.inf"
  使用 INF 运行添加打印机向导:
rundll32 printui.dll,PrintUIEntry /ii /f c:\infpath\infFile.inf
  使用内置打印机驱动程序添加打印机:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /r "lpt1:" /m "Brother DCP-128C"
  添加每个机器打印机连接(用户登录时此连接将传播到用户):
rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
  删除每个机器打印机连接(用户登录时此连接将被删除):
rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer
  枚举每个机器打印机连接:
rundll32 printui.dll,PrintUIEntry /ge /c\\machine
  使用 INF 添加打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode" /f c:\infpath\infFile.inf
  使用 INF 添加打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "Brother DCP-128C" /h "x86" /v 3
  添加内置打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Brother DCP-128C" /h "Intel" /v "Type 3 - Kernel Mode"
  删除打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode"
  删除打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "Brother DCP-128C" /h "x86" /v 3
  将打印机设置为默认打印机:
rundll32 printui.dll,PrintUIEntry /y /n "printer"
  设置打印机注解:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"
  取得打印机设置:
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
  取得文件中的打印机设置保存结果:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
  设置打印机设置命令使用:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
  将所有打印机设置存入一个文件:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
  从一个文件还原所有打印机设置:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
  将二级打印机信息存入一个文件:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
  从一个文件还原打印机安全描述符:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
  从一个文件还原打印机全局 devmode 和打印机数据:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
  从文件最少设置还原并分析端口名:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p
  启用打印机的客户端呈现:
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender enabled
  禁用打印机的客户端呈现:
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender disabled

  添加打印机步骤,首先在控制面板的打印机页面中确认本地端口是否存在。能够正常打印的虚拟端口为(NUL:),如果不存在,需要手动创建。

@echo off 
REM 添加5台名称为 TestPrt1-TestPrt5 使用端口为 NUL: 使用驱动为 Brother DCP-116C 的打印机
SET NUM=5
for /l %%i in (1 1 %NUM%) do rundll32 printui.dll,PrintUIEntry /if /b "TestPrt%%i" /r "NUL:" /m "Brother DCP-116C"
pause

  删除打印机

@echo off
REM 删除名为TestPrt1-TestPrt5的5台打印机
SET NUM=5
for /l %%i in (1 1 %NUM%) do rundll32 printui.dll,PrintUIEntry /dl /n "TestPrt%%i"
pause

以上所述是小编给大家介绍的在windows中追加/删除虚拟打印机实例教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
author-avatar
冷月荐向_878
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有