从网上找的代码进行了修改!!

其原理1\用注册表添加端口,2\重启打印服务 ,3最后使用"rundll32 printui.dll"命令进行添加打印机

如下:

  1. #RequireAdmin
  2. ProgressOn("处理中,请稍候...BY:天祈", "", "", -1, -1, 2 + 16)
  3. ProgressSet(0, "已完成 0%", "正在创建变量...")
  4. $fileURL=@ScriptDir & "\userprint.ini"
  5. ;MsgBox(0, "", $fileURL)
  6. If (FileExists($fileURL)==0)Then
  7. IniWrite($fileURL,"print","SetPrinterIP","定义打印机IP地址")
  8. IniWrite($fileURL,"print","SetPrinterName","定义打印机名称可任意更改")
  9. IniWrite($fileURL,"WIN7_32","drvpatch","打印机驱动所在位置")
  10. IniWrite($fileURL,"WIN7_32","SetPrinterDriver","定义打印机驱动选择")
  11. IniWrite($fileURL,"WIN7_64","drvpatch","")
  12. IniWrite($fileURL,"WIN7_64","SetPrinterDriver","")
  13. IniWrite($fileURL,"WIN_XP","drvpatch","")
  14. IniWrite($fileURL,"WIN_XP","SetPrinterDriver","")
  15. Exit
  16. EndIf
  17. Sleep(300)
  18. $SetPrinterIP = IniRead($fileURL,"print","SetPrinterIP","")
  19.  
  20. If $SetPrinterIP="定义打印机IP地址" Then ;确定文件有进行修改
  21. Exit
  22. EndIf
  23.  
  24. $SetPrinterName = IniRead($fileURL,"print","SetPrinterName","") ;读打印机名称
  25. If @OSVersion="WIN_7" Then
  26. If @OSArch="X86" Then
  27. $drvpatch = IniRead($fileURL,"WIN7_32","drvpatch","") ;打印机驱动所在位置
  28. $SetPrinterDriver= IniRead($fileURL,"WIN7_32","SetPrinterDriver","") ;定义打印机驱动选择
  29. Else
  30. $drvpatch = IniRead($fileURL,"WIN7_64","drvpatch","") ;打印机驱动所在位置
  31. $SetPrinterDriver= IniRead($fileURL,"WIN7_64","SetPrinterDriver","") ;定义打印机驱动选择
  32. EndIf
  33. EndIf
  34. If @OSVersion="WIN_XP" Then
  35. $drvpatch = IniRead($fileURL,"WIN_XP","drvpatch","") ;打印机驱动所在位置
  36. $SetPrinterDriver= IniRead($fileURL,"WIN_XP","SetPrinterDriver","") ;定义打印机驱动选择
  37. EndIf
  38. $Patch = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\"
  39. $Patch001 = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\"
  40. $i = 1
  41. $s = ""
  42. ProgressSet(10, "已完成 10%", "正在检测端口信息...")
  43. Sleep(300)
  44. Do
  45. $Var = RegEnumKey($Patch, $i)
  46. $i = $i + 1
  47. $s = $s & $Var& "/"
  48. ProgressSet(10 + $i, "已完成 " & 10 + $i& "%", "正在检测端口信息...")
  49. Sleep(300)
  50. Until StringLeft($Var, 3) <> "IP_"
  51.  
  52. $x = StringInStr($s, "IP_" & $SetPrinterIP)
  53. $PortName = "IP_" & $SetPrinterIP
  54. $NewPatch = $Patch & $PortName
  55. $NewPatch001 = $Patch001 & $PortName
  56. ProgressSet(30, "已完成 30%", "正在检测端口是否存在...")
  57. Sleep(300)
  58. If $x = 0 Then
  59. ProgressSet(40, "已完成 40%", "端口不存在,在正在创建端口...")
  60. Sleep(300)
  61. RegWrite($NewPatch)
  62. RegWrite(")
  63. RegWrite(")
  64. RegWrite($NewPatch, "HostName", "REG_SZ", "")
  65. RegWrite($NewPatch, "IPAddress", "REG_SZ", $SetPrinterIP)
  66. RegWrite($NewPatch, "HWAddress", "REG_SZ", "")
  67. RegWrite(")
  68. RegWrite($NewPatch, "SNMP Community", "REG_SZ", "public")
  69. RegWrite(")
  70. RegWrite(")
  71. ProgressSet(60, "已完成 60%", "端口不存在,正在创建端口...")
  72. Sleep(300)
  73. RegWrite($NewPatch001)
  74. RegWrite(")
  75. RegWrite(")
  76. RegWrite($NewPatch001, "HostName", "REG_SZ", "")
  77. RegWrite($NewPatch001, "IPAddress", "REG_SZ", $SetPrinterIP)
  78. RegWrite($NewPatch001, "HWAddress", "REG_SZ", "")
  79. RegWrite(")
  80. RegWrite($NewPatch001, "SNMP Community", "REG_SZ", "public")
  81. RegWrite(")
  82. RegWrite(")
  83. ProgressSet(70, "已完成 70%", "正在停止打印服务...")
  84. RunWait(@ComSpec& " /c sc stop spooler", "", @SW_HIDE)
  85. ProcessWaitClose ("cmd.exe")
  86. ProgressSet(75, "已完成 80%", "正在启动打印服务...")
  87. RunWait(@ComSpec& " /c sc start spooler", "", @SW_HIDE)
  88. ProcessWaitClose ("cmd.exe")
  89. ProgressSet(80, "已完成 80%", "准备添加打印机...")
  90. Sleep(300)
  91. Else
  92. ProgressSet(60, "已完成 60%", "端口已经存在,准备添加打印机...")
  93. Sleep(300)
  94. EndIf
  95. ProgressSet(90, "已完成 90%", "正在添加打印机...")
  96. RunWait(@ComSpec& ' /c rundll32 printui.dll,PrintUIEntry /if /b "' & $SetPrinterName& '" /f '& $drvpatch&' /r "' & $PortName& '" /m "' & $SetPrinterDriver& '"', "", @SW_HIDE)
  97. ;MsgBox (0,"注意","添加打印机完毕!")
  98. Sleep(300)
  99. ProgressSet(100, "已完成 100%", "添加打印机完毕!")
  100. ProgressOff()
  101. MsgBox(0, "", "添加完毕!")
  102. Run("RUNDLL32 SHELL32.DLL,SHHelpShortcuts_RunDLL PrintersFolder")

Autoit3 自动添加打印机的更多相关文章

  1. [daily][device] linux添加打印机

    只用过HP的打印机,用过两个,分别是:HP_p2055dn, 和 HP_LaserJet_Professional_M1216nfh  别的不知道.以下内容仅试用于HP打印机. 第一:装HP,打印机工 ...

  2. Ubuntu16.04下添加打印机FujiXerox CP116w

    今天要打印一份北马的成绩单, 不想重启机器了, 在Ubuntu下尝试添加打印机, 最后成功了, 记录一下 打印机型号是FujiXerox CP116w, 通过WIFI连接的, 在Ubuntu16.04 ...

  3. mac OS X:[11]如何添加打印机

    苹果菜单中,单击下拉列表中的『系统偏好设置』: 或在Dock上,单击『系统偏好设置』图标. 2 在『系统偏好设置』窗口中,单击『打印机与扫描仪』图标. 3 在『打印机与扫描仪』窗口中,单击打印机框架下 ...

  4. 话说普通的TPlink ip地址是192.168.1.2 在LAN里有台电脑共享打印机 ip 是192.168.0.2 计算机名为j02 然后我把这台电脑加到DMZ里,让根路由器同一网段的可以访问 但添加打印机的时候 提示 计算机名重复 后来在需要添加打印机电脑的hosts文件里加了 192.168.1.2 j02 式了一样不行 话说,这个打印机该怎么添加

    开启端口映射,从外网访问内网的文件共享: 已经在路由器里开了远端WEB管理设了端口,另外端口映射局域网里的一台电脑,比如WEB端口设的是8080,映射192.168.1.100到4877端口,现在我想 ...

  5. HP网络打印机--如何添加打印机

    HP网络打印机采用web服务形式,应添加打印机-通过Internet的打印机--填写网址http://192.168.1.10:80(从其他win7电脑-计算机-网络-网络设备中双击添加打印机,然后在 ...

  6. 前端自动化工具gulp自动添加版本号

    之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...

  7. Gulp自动添加版本号(转载)

    本文转载自: gulp自动添加版本号

  8. VS 自动添加注释

    现在大多数公司都规定程序员在程序文件的头部加上版权信息,这样每个人写的文件都可以区分开来,如果某个文件出现问题就可以快速的找到文件的创建人,用最短的时间来解决问题,常常是以下格式: //======= ...

  9. Zabbix网络自动发现规则和自动添加hosts及link模板

    Version: zabbix 3.0 一.配置网络发现规则 Device uniqueness criteria:选择主机名作为唯一标识(Configuation Hosts中显示的NAME) 二. ...

随机推荐

  1. [CSP-S模拟测试]:building(模拟)

    题目传送门(内部题64) 输入格式 第一行有一个整数$id$,表示测试点编号.第二行有四个整数$n,m,k,q$.然后有$k$行,每一行有四个整数$x_{i_1},y_{i_1},x_{i_2},y_ ...

  2. 牛客网暑期ACM多校训练营(第五场) F - take —— 期望+树状数组+逆元

    看到一篇好的博客特意转出来观摩大佬:转:https://blog.csdn.net/greybtfly/article/details/81413526 题目大意:给n个箱子排成一排,从头到尾按顺序依 ...

  3. 123、TensorFlow的Job

    # 如果你在分布式环境中部署TensorFlow # 你或许需要指定job name和task ID # 来将变量放置在参数服务器上 # 将操作放在worker job import tensorfl ...

  4. CYQ.Data 开源数据层框架 官方下载

    CYQData 数据框架 介绍: CYQ.Data 是一款操作数据库用的数据框架:安全稳定.简洁易用.功能强大.性能优越.内置支持多数据库.多语言.RSS.AOP.事务等功能. 使用本框架进行开发,入 ...

  5. python学习笔记:unittest单元测试

    单元测试:开发自测时写的代码 unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是pytho ...

  6. vuejs基础-跑马灯效果

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. Spring Boot 1.x 正式退役,2.x大步向前!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 早在<Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!>一文中栈长就提醒大家 Sprin ...

  8. jvm学习(3)方法区、堆、对象存储位置

    方法区 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价, ...

  9. 【五一qbxt】day5 图论

    图论 学好图论的基础: 必须意识到图论hendanteng xuehuifangqi(雾 图 G = (V,E) 一般来说,图的存储难度主要在记录边的信息 无向图的存储中,只需要将一条无向边拆成两条即 ...

  10. k8s 组件介绍-kube-schedule

    kubernetes scheduler 基本原理 kubernetes scheduler 作为一个单独的进程部署在 master 节点上,它会 watch kube-apiserver 进程去发现 ...