Autoit3 自动添加打印机
从网上找的代码进行了修改!!
其原理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 自动添加打印机的更多相关文章
- [daily][device] linux添加打印机
只用过HP的打印机,用过两个,分别是:HP_p2055dn, 和 HP_LaserJet_Professional_M1216nfh 别的不知道.以下内容仅试用于HP打印机. 第一:装HP,打印机工 ...
- Ubuntu16.04下添加打印机FujiXerox CP116w
今天要打印一份北马的成绩单, 不想重启机器了, 在Ubuntu下尝试添加打印机, 最后成功了, 记录一下 打印机型号是FujiXerox CP116w, 通过WIFI连接的, 在Ubuntu16.04 ...
- mac OS X:[11]如何添加打印机
苹果菜单中,单击下拉列表中的『系统偏好设置』: 或在Dock上,单击『系统偏好设置』图标. 2 在『系统偏好设置』窗口中,单击『打印机与扫描仪』图标. 3 在『打印机与扫描仪』窗口中,单击打印机框架下 ...
- 话说普通的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端口,现在我想 ...
- HP网络打印机--如何添加打印机
HP网络打印机采用web服务形式,应添加打印机-通过Internet的打印机--填写网址http://192.168.1.10:80(从其他win7电脑-计算机-网络-网络设备中双击添加打印机,然后在 ...
- 前端自动化工具gulp自动添加版本号
之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...
- Gulp自动添加版本号(转载)
本文转载自: gulp自动添加版本号
- VS 自动添加注释
现在大多数公司都规定程序员在程序文件的头部加上版权信息,这样每个人写的文件都可以区分开来,如果某个文件出现问题就可以快速的找到文件的创建人,用最短的时间来解决问题,常常是以下格式: //======= ...
- Zabbix网络自动发现规则和自动添加hosts及link模板
Version: zabbix 3.0 一.配置网络发现规则 Device uniqueness criteria:选择主机名作为唯一标识(Configuation Hosts中显示的NAME) 二. ...
随机推荐
- 【HDOJ6699】Block Breaker(模拟)
题意:给定一个n*m的网格块,如果一个块水平或垂直方向没有相邻支撑就会掉下去 有q次询问,每次会掉下去一块,问连锁反应新掉下的块数 n,m<=2e3,q<=1e5 思路: #include ...
- django正常运行确报错的解决方法
django正常运行却报错的处理方法 出处 : https://www.infvie.com/ops-notes/django-normal-operation-error 报错一:self._soc ...
- 学习日记7、mvc +easyui datagrid excel上传
1.首先获取datagrid所有行的数据 var rows = $("#List").datagrid("getRows"); 2.进行数据转换转化成JSON格 ...
- python-zx笔记11-测试压力管理
一.添加测试用例 calculator.py class Math: def __init__(self,a,b): self.a = int(a) self.b = int(b) def add(s ...
- 2019牛客暑期多校训练营(第六场)C - Palindrome Mouse (回文自动机)
https://ac.nowcoder.com/acm/contest/886/C 题意: 给出一个串A , 集合S里面为A串的回文字串 , 现在在集合S里面找出多少对(a,b),b为a的字串 分析: ...
- 使用debugger在程序中加入断点
使用debugger在程序中加入断点 版权声明:本文为博主原创文章,未经博主允许不得转载. 我们可以在程序中加入debugger语句,这样Firefox的调试工具会停留在这条语句上,代码也暂停执行,和 ...
- node中console自定义样式
最近公司的项目一直使用gulpfile打包,项目会有三种项目打包(生产环境)和监听(开发环境)两种过程,同时需要清除文件夹,希望打包时增加提示以便区分,暂时分为上述三种提示打包.监听.清除. 先上co ...
- Fedora 26 安装搜狗拼音输入法 sogoupinyin
Fcitx 官方 wiki Fcitx GitHub Arch wiki 上关于 Fcitx 的资料 故障排除可以参考这里 Fedora 中文社区 Fedora 中文社区软件源 Fcitx (Flex ...
- JavaScript搜索框响应事件
HTML页面,注意:不要使用form标签 <input type = "text" name="keyword" id="keyword&quo ...
- mybatis 批量update报语法错误解决方法
1.为什么会报语法错误 原因:在 *.xml文件内使用了循环,在mybatis中默认是不允许使用批量修改. <update id="setMaxMin" parameterT ...