#Region ;**** 编译指令由 AutoIt3Wrapper 选项编译窗口创建 ****
#AutoIt3Wrapper_Icon=favicon.ico
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** 编译指令由 AutoIt3Wrapper 选项编译窗口创建 ****
#cs ---------------------------------------------------------------------------- Version: 1.0
Author: MaJunyi #ce ----------------------------------------------------------------------------
#include <StringConstants.au3> ; for 正则表达式
#include <GUIConstantsEx.au3> ; for GUI
#include <WinAPIShellEx.au3>; for winShell
#include <InetConstants.au3>; for download
; CPL文件,又叫控制面板项(Control Panel Item),多保存于系统安装目录的system32文件夹下,它们分别对应着控制面板中的项目 ; 优化:
; . 可以添加一号楼绝大部分打印机
; . 可添加二号楼3..5楼打印机
; . 可进入---控制面板\所有控制面板项\设备和打印机(control printers)
; 不足:
; . 暂未添加用户名至网络打印机
; . 打印楼层单一 $headlabel = "打印机添加和安装"
GUICreate($headlabel, , )
$okbutton = GUICtrlCreateButton("确认安装", , , , )
$localPrintBtn = GUICtrlCreateButton("已安装的打印机", , , , )
$printDriverBtn = GUICtrlCreateButton("打印机驱动", , , , ) $guiTop = GUICtrlCreateLabel("请选择您的位置:", , $guiTop)
$guiTop+=
Local $idRadio1 = GUICtrlCreateRadio("一号楼", , $guiTop)
$guiTop1 = $guiTop
$guiTop+=
Local $idRadio231 = GUICtrlCreateRadio("二号楼-3楼1", , $guiTop)
$guiTop231 = $guiTop
$guiTop+=
Local $idRadio232 = GUICtrlCreateRadio("二号楼-3楼2", , $guiTop)
$guiTop232 = $guiTop
$guiTop+=
Local $idRadio241 = GUICtrlCreateRadio("二号楼-4楼1", , $guiTop)
$guiTop241 = $guiTop
$guiTop+=
Local $idRadio242 = GUICtrlCreateRadio("二号楼-4楼2", , $guiTop)
$guiTop242 = $guiTop
$guiTop+=
Local $idRadio25 = GUICtrlCreateRadio("二号楼-5楼", , $guiTop)
$guiTop25 = $guiTop ; 检测是否云桌面
isCloudOrNot()
GUISetState(@SW_SHOW)
Sleep()
; 下载驱动
$printDriverIp = "\\xxx.xxx.xxx.xxx"
; GUICtrlCreateLabel("连接及下载打印机驱动,从" & $printDriverIp, , )
; Sleep()
; $openNetPrint = _WinAPI_ShellExecute ($printDriverIp)
; GUICtrlCreateLabel("尝试连接打印机(会显示打印机任务,需去打印机刷卡才会打印)", , )
; Sleep() ; GUICtrlCreateLabel("打开 " & $ctrlPrintShow, , ) ; net use \\xxx.xxx.xxx.xxx\eFollow_Printer /user:HEM100 ; Script Start - Add your code below here
; 检测是否云
Func isCloudOrNot()
Local $string0 = StringRegExp(@IPAddress1, '(172.xx.)(\d+.\d+)', $STR_REGEXPARRAYMATCH)
If Not @error Then
$isYun =
MsgBox(,'', '您是尊贵的云用户,不能添加打印机')
Else
If @error== Then
; Return "您不是云用户"
Return "正在为您添加打印机"
Else
Return "请联系开发人员,错误代码:" & @error
; : 正则表达式错误, 数组无效.
EndIf
EndIf
EndFunc Global $chooseRadio
Global $driverIp
Global $driverIpFile
$LianJieTipsLeft = While
$msg = GUIGetMsg()
Select
Case $msg = $idRadio1 And BitAND(GUICtrlRead($idRadio1), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio =
; MsgBox($MB_SYSTEMMODAL, 'Info', $chooseRadio)
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop1+)
Case $msg = $idRadio231 And BitAND(GUICtrlRead($idRadio231), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio = ;ok
$driverIpFile = "\UNIV_driver\Setup.exe"
$driverIp = "\\172.16.11.234"
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop231+)
Case $msg = $idRadio232 And BitAND(GUICtrlRead($idRadio232), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio = ;ok
$driverIpFile = "\UNIV_driver\essetup.exe"
$driverIp = "\\172.16.11.220"
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop232+)
Case $msg = $idRadio241 And BitAND(GUICtrlRead($idRadio241), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio = ;ok
$driverIpFile = "\UNIV_driver\Setup.exe"
$driverIp = "\\172.16.242.245"
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop241+)
Case $msg = $idRadio242 And BitAND(GUICtrlRead($idRadio242), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio = ;ok
$driverIpFile = "\UNIV_driver\essetup.exe"
$driverIp = "\\172.16.11.228"
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop242+)
Case $msg = $idRadio25 And BitAND(GUICtrlRead($idRadio25), $GUI_CHECKED) = $GUI_CHECKED
$chooseRadio = ;ok
$driverIpFile = "\UNIV_driver\Setup.exe"
$driverIp = "\\172.16.241.172"
GUICtrlCreateLabel("驱动服务器" & canConnectOrNot('xxx.xxx.xxx.xxx'), $LianJieTipsLeft, $guiTop25+)
Case $msg = $okbutton
If $chooseRadio == Then
MsgBox(,"","尝试连接打印机(会显示打印机任务,需去打印机刷卡才会打印)")
$openNetPrintFile = _WinAPI_ShellExecute ("\\xxx.xxx.xxx.xxx\eFollow_Printer")
ElseIf $chooseRadio > Then
$mLink = $driverIp & $driverIpFile
$openNetPrintFile = _WinAPI_ShellExecute ($mLink)
; downloadFile('printDriver.exe', "file://xxx.xxx.xxx.xxx/UNIV_driver/Setup.exe")
Else
MsgBox(,"","请选择您的位置")
EndIf
; ExitLoop
Case $msg = $localPrintBtn
; $ctrlPrintShow = "控制面板\硬件和声音\设备和打印机"
; $openPrintDir = _WinAPI_ShellExecute("::{2227A280-3AEA-1069-A2DE-08002B30309D}")
$openPrintDir = Run(@SystemDir & "\control.exe printers")
Case $msg = $printDriverBtn
$openNetPrintFile = _WinAPI_ShellExecute ("\\xxx.xxx.xxx.xxx")
Case $msg = $GUI_EVENT_CLOSE
; 关闭对话框事件
ExitLoop
EndSelect
WEnd ; 检测是否能连接上指定IP
Func canConnectOrNot($testIP)
; Ping网站,超时时间为 毫秒.
Local $iPing = Ping($testIP, )
If $iPing Then
Return "连接成功"
Else
;当函数执行失败时(返回 )@error 包含数值的具体信息:
If @error == Then
Return "离线"
ElseIf @error == Then
Return "无法到达"
ElseIf @error == Then
Return "目标错误"
ElseIf @error == Then
Return "其他错误-连接超时"
Else
Return "连接超时"
EndIf
EndIf
EndFunc Func downloadFile($mFile, $link)
ProgressOn("下载新版本:"&$mFile, "正在更新版本,请稍候...", "0%")
Local $i =
Do
Sleep()
;$i = $i+
$i = Round(FileGetSize($mFile)//)
; Update the progress value of the progress bar window.
ProgressSet($i, $i & "%")
Until InetGetInfo($link, $INET_DOWNLOADCOMPLETE)
; Set the "subtext" and "maintext" of the progress bar window.
ProgressSet(, "更新完成", "Complete")
Sleep()
; Close the progress window.
ProgressOff()
EndFunc

基于AutoIt3的打印机安装的更多相关文章

  1. 【申嵌视频】基于VMWare虚拟机下安装ubuntu操作系统的详细步骤

    [申嵌视频]基于VMWare虚拟机下安装ubuntu操作系统 适合搭建mini2440, Tiny6410, smart210,Tiny4412, NanoPC-T2, NanoPC-T3, Nano ...

  2. 树莓派进阶之路 (035) - 基于linux的zsh安装脚本

    基于linux的zsh安装脚本: Ubuntu版本: #!/bin/sh cd #安装zsh sudo apt-get install zsh #查看zsh cat /etc/shells #更改zs ...

  3. 基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本)

    基于yum的方式安装Cloudera Manager Agent(使用Mysql 8.0版本) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.选择CDH版本 1>.确认 ...

  4. 基于yum的方式安装Cloudera Manager Server(使用Mysql 8.0版本)

    基于yum的方式安装Cloudera Manager Server(使用Mysql 8.0版本) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装和配置元数据库 1>. ...

  5. Mysql安装 ----> 基于源码包安装

    1)基于源码包安装MySQL [root@localhost ~]# rpm -q mysql mysql-server mariadb mairadb-server           //检查有没 ...

  6. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  7. windows平台下基于VisualStudio的Clang安装和配置

    LLVM 是一个开源的编译器架构,它已经被成功应用到多个应用领域.Clang是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程 ...

  8. 基于kickstart定制自动化安装的linux镜像系统

    使用软件和平台 1.基于平台:                  Vmware workstation 8.0 2.基于系统镜像:               rhel-server-5.8-i386 ...

  9. 基于vue,打印机打印暂且处理

    基于vue单页面应用.暂且没找到合适的方案,什么vue-print  .jquery.print.js.jqprint.js..canvas生成图片啊 大多不能保证页面样式保持原样. 所以,选择了最土 ...

随机推荐

  1. No.3 Verilog 语言要素

    - 标识符 任意字母.数字."$"和"_"组成,标识符第一个不能是数字. - 注释 ()/*可扩展多行*/ ()//本行结束 - 系统函数 以$字符开始的标识符 ...

  2. python ddt 实现数据驱动

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

  3. day39-Spring 04-CGLIB的动态代理

    JDK动态代理是有接口我给你创建一个类和你这个实现类是一样的, CGLIB不对实现接口的类生成代理,一个普通类也可以生成代理.CGLIB用继承的方式帮你生成代理对象.你父类有的方法我也有了,我想增强也 ...

  4. SDUT-3363_驴友计划

    数据结构实验之图论七:驴友计划 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 做为一个资深驴友,小新有一张珍藏的自驾游 ...

  5. android GUI 流程记录

    ViewRootImpl 与 wms ViewRootImple里的 WindowSeesion是WindowManagerService的proxy, 通过这个句柄来调用WMS的功能而W是 wms用 ...

  6. WPF程序国际化

    1.创建相应的xaml文件 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen ...

  7. Oracle使用——impdp导入数据时数据表已经存在

    背景 在做数据迁移时,需要将不同地方的dmp文件整合到一个数据库中,在导入时,目标表已经存在,该如何把数据追加进入目标表中 方法介绍 当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提 ...

  8. H5+ 分享到微信、朋友圈代码示例

    h5+分享到微信.朋友圈代码示例 在使用分享功能的时候会莫名的分享失败,debug时发现是图片过大的问题. 图片过大时ios平台上返回错误码-8,安卓上返回错误码-3(我测试是这样) 因此如果第一次分 ...

  9. 前端学习☞jquery

    一 什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 j ...

  10. ios程序员6级考试(答案和解释)

    http://blog.sunnyxx.com/2014/03/06/ios_exam_0_key/ 我是前言 上次发了个ios程序员6级考试题 ,还在不断补充中,开个帖子配套写答案和解释. 1. 下 ...