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

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

如下:

#RequireAdmin
ProgressOn("处理中,请稍候...BY:天祈", "", "", -1, -1, 2 + 16)
ProgressSet(0, "已完成 0%", "正在创建变量...")
$fileURL=@ScriptDir & "\userprint.ini"
;MsgBox(0, "", $fileURL)
If (FileExists($fileURL)==0)Then
IniWrite($fileURL,"print","SetPrinterIP","定义打印机IP地址")
IniWrite($fileURL,"print","SetPrinterName","定义打印机名称可任意更改")
IniWrite($fileURL,"WIN7_32","drvpatch","打印机驱动所在位置")
IniWrite($fileURL,"WIN7_32","SetPrinterDriver","定义打印机驱动选择")
IniWrite($fileURL,"WIN7_64","drvpatch","")
IniWrite($fileURL,"WIN7_64","SetPrinterDriver","")
IniWrite($fileURL,"WIN_XP","drvpatch","")
IniWrite($fileURL,"WIN_XP","SetPrinterDriver","")
Exit
EndIf
Sleep(300)
$SetPrinterIP = IniRead($fileURL,"print","SetPrinterIP","")

If $SetPrinterIP="定义打印机IP地址" Then ;确定文件有进行修改
Exit
EndIf

$SetPrinterName = IniRead($fileURL,"print","SetPrinterName","")              ;读打印机名称
If @OSVersion="WIN_7" Then
    If @OSArch="X86" Then
        $drvpatch = IniRead($fileURL,"WIN7_32","drvpatch","")                          ;打印机驱动所在位置
        $SetPrinterDriver= IniRead($fileURL,"WIN7_32","SetPrinterDriver","")           ;定义打印机驱动选择
    Else
        $drvpatch = IniRead($fileURL,"WIN7_64","drvpatch","")                          ;打印机驱动所在位置
        $SetPrinterDriver= IniRead($fileURL,"WIN7_64","SetPrinterDriver","")           ;定义打印机驱动选择
    EndIf
    EndIf
If @OSVersion="WIN_XP" Then
        $drvpatch = IniRead($fileURL,"WIN_XP","drvpatch","")                          ;打印机驱动所在位置
        $SetPrinterDriver= IniRead($fileURL,"WIN_XP","SetPrinterDriver","")           ;定义打印机驱动选择
EndIf
        $Patch = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\"
        $Patch001 = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\"
        $i = 1
        $s = ""
ProgressSet(10, "已完成 10%", "正在检测端口信息...")
Sleep(300)
        Do
                $Var = RegEnumKey($Patch, $i)
                $i = $i + 1
                $s = $s & $Var& "/"
ProgressSet(10 + $i, "已完成 " & 10 + $i& "%", "正在检测端口信息...")
Sleep(300)
        Until StringLeft($Var, 3) <> "IP_"

        $x = StringInStr($s, "IP_" & $SetPrinterIP)
        $PortName = "IP_" & $SetPrinterIP
        $NewPatch = $Patch & $PortName
        $NewPatch001 = $Patch001 & $PortName
ProgressSet(30, "已完成 30%", "正在检测端口是否存在...")
Sleep(300)
        If $x = 0 Then
ProgressSet(40, "已完成 40%", "端口不存在,在正在创建端口...")
Sleep(300)
RegWrite($NewPatch)
RegWrite(")
RegWrite(")
RegWrite($NewPatch, "HostName", "REG_SZ", "")
RegWrite($NewPatch, "IPAddress", "REG_SZ", $SetPrinterIP)
RegWrite($NewPatch, "HWAddress", "REG_SZ", "")
RegWrite(")
RegWrite($NewPatch, "SNMP Community", "REG_SZ", "public")
RegWrite(")
RegWrite(")
ProgressSet(60, "已完成 60%", "端口不存在,正在创建端口...")
Sleep(300)
RegWrite($NewPatch001)
RegWrite(")
RegWrite(")
RegWrite($NewPatch001, "HostName", "REG_SZ", "")
RegWrite($NewPatch001, "IPAddress", "REG_SZ", $SetPrinterIP)
RegWrite($NewPatch001, "HWAddress", "REG_SZ", "")
RegWrite(")
RegWrite($NewPatch001, "SNMP Community", "REG_SZ", "public")
RegWrite(")
RegWrite(")
ProgressSet(70, "已完成 70%", "正在停止打印服务...")
RunWait(@ComSpec& " /c sc stop spooler", "", @SW_HIDE)
ProcessWaitClose ("cmd.exe")
ProgressSet(75, "已完成 80%", "正在启动打印服务...")
RunWait(@ComSpec& " /c sc start spooler", "", @SW_HIDE)
ProcessWaitClose ("cmd.exe")
ProgressSet(80, "已完成 80%", "准备添加打印机...")
Sleep(300)
        Else
ProgressSet(60, "已完成 60%", "端口已经存在,准备添加打印机...")
Sleep(300)
EndIf
ProgressSet(90, "已完成 90%", "正在添加打印机...")
RunWait(@ComSpec& ' /c rundll32 printui.dll,PrintUIEntry /if /b "' & $SetPrinterName& '" /f '& $drvpatch&' /r "' & $PortName& '" /m "' & $SetPrinterDriver& '"', "", @SW_HIDE)
        ;MsgBox (0,"注意","添加打印机完毕!")
Sleep(300)
ProgressSet(100, "已完成 100%", "添加打印机完毕!")
ProgressOff()
MsgBox(0, "", "添加完毕!")
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. Docker容器日常操作命令

    在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其 ...

  2. 125、TensorFlow计算图的执行

    # TensorFlow使用tf.Session类来表示客户端程序之间的链接 # 虽然一个在其他语言中相似的接口也是可以使用的,列如C++ runtime # 一个tf.Session对象提供了访问本 ...

  3. js中的window对象:打开窗口

    ~~ window.open():打开一个窗口 里面需要放三个参数: 1.打开窗口(网页)的位置: 2.打开的方式(自身页面,新开页面): 其中_blank新开一个窗口 3.打开网页的属性: wind ...

  4. zookeeper centos分布式安装使用

    1. 请先安装jdk和下载zookeeper.ssh免密登录请自行配置.大家可以到官网下载或我的网盘. 网盘地址: 共3台机器c0,c1,c2 192.168.132.148 c0192.168.13 ...

  5. 应用安全-Web安全-越权漏洞整理

    login->register GetPhone->GetPasswd GetPwd->GetPassword 遍历https://xx.com/contacts/new?user_ ...

  6. vuejs基础-事件修饰符

    事件修饰符: .stop 阻止冒泡 .prevent 阻止默认事件 .capture 添加事件侦听器时使用事件捕获模式 .self 只当事件在该元素本身(比如不是子元素)触发时触发回调 .once 事 ...

  7. jQuery基础--选择器

    2. 选择器 2.1. 什么是jQuery选择器 jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素.注意:jQuery选择器返回的是jQuery对象. jQue ...

  8. Pytest+Allure2+Jenkins搭建

    前置: (1)安装Python3(这里版本为3.7) (2)搭建Jenkins环境 一.安装pytest 直接使用pip安装(这里由于笔者的环境同时安装了Python2和Python3,所以在pyth ...

  9. java_第一年_JavaWeb(3)

    ServletConfig对象 可以通过web.xml文件中的<init-param>标签来初始化参数,这些参数会在创建servlet实例时将其封装到ServletConfig对象中,并在 ...

  10. [原]__ASSEMBLY__的用途

    在Linux Kernel中有些constant需要被C code 跟 assembler共同使用 在用constant的時候,不能單方面給0x1000UL因為assembler無法看這東西. 但是C ...