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) 二. ...
随机推荐
- 牛客多校第一场 Random Point in Triangle
https://ac.nowcoder.com/acm/contest/881/F 打表代码: #include<bits/stdc++.h> using namespace std; ] ...
- macOS 10.14 Mojave Apache Setup: Multiple PHP Versions
Part 1: macOS 10.14 Mojave Web Development Environment Developing web applications on macOS is a rea ...
- Java 设计模式之 策略模式
思维导图: 我们先来看 STRATEGY 设计模式的通俗解释: 跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,但目的都是为了得到 MM 的芳心, ...
- Day1 方法的重载
方法的重载 方法的标识符包括: 1.方法名称 2.方法的参数(参数类型和参数的数量) 方法的重载:方法名称相同 但是方法参数不同(1.参数类型不同 2.参数类型相同 但是参数个数不同 3.类型和个 ...
- php面试专题---8、会话控制考点
php面试专题---8.会话控制考点 一.总结 一句话总结: 主要是cookie和session的区别,以及用户禁用cookie之后怎么使用session 1.为什么要使用会话控制技术? 因为http ...
- JSON字符串格式化为JSON对象
根据项目需要,需要对json格式的字符串格式化为json对象,以下是解决方法: 参考文章:https://www.cnblogs.com/cailijuan/p/10150918.html
- Windows命令学习
总: 1.window dos命令不区分大小写 2.指令参数 /a -a 等价 更倾向于 / 3.命令有疑问: CMD输入help 或者单条命令 /? help time /? 用到的实用命令总 ...
- pve三种操作方式
pve三种操作方式 ==========================================================api方式 https://192.168.1.4:8006/p ...
- 动态规划-递推-HDU2048
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2048 全错=全不匹配 设当前全错的个数是dp[n] 那么前(n-1)个全错的话,第n个数就可以从前(n- ...
- Android 中三种启用线程的方法
在多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 首先说明Android的CPU分配的最小单元是线程,Han ...