#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. Spark day03

    补充算子 transformations mapPartitionWithIndex 类似于mapPartitions,除此之外还会携带分区的索引值. repartition 增加或减少分区.会产生s ...

  2. Leetcode784.Letter Case Permutation字母大小写全排列

    给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串.返回所有可能得到的字符串集合. 示例: 输入: S = "a1b2" 输出: ["a1 ...

  3. react-jd-index

    看见一些代码的产物,会觉得非常的漂亮~感谢无私开源的程序员们~你们是最可爱的人儿~~ //index.jsx require('./app/lib/common.css'); import React ...

  4. PHP如何输出合并单元格的表

    https://mp.weixin.qq.com/s/ChPIKIv9tqmuqGyfc9Zi7Q 合并单元格的表,很多地方可以见到,比如购物车,订单合并等,今天给大家讲解一下,如何操作,虽然我用的l ...

  5. python socketserver ftp上传功能

    一.socketserver用于多个客户端访问同一个服务端 客户端 import socket client = socket.socket() ip_port = ('127.0.0.1',8001 ...

  6. linux查看用户组所有成员

    1.grep 'user1' /etc/group //找出用户组的gid user1:x:1004://得出gid=1004 2. awk -F":" '{print $1&qu ...

  7. Docker初步了解 2016-10-30 20:46 279人阅读 评论(31) 收藏

    什么是docker? Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器. Docker本质上是一种软件,让用户创建镜像(很像虚拟机的模板),并且随后在容器里 ...

  8. Extended Traffic

    题目链接 题意:有n个路口,m条通路,如果经过一条路则会得到(终点 - 起点)^3的权值,求从1点到其他点的最小权值,如果权值小于3或无法到达输出'?'. 题解:因为权值可能为负,所以用SPFA来解题 ...

  9. Lib1vent:10链接监听器接受TCP链接

    evconnlistener机制提供了监听并接受TCP链接的方法.除非特别注明,本章的所有函数和类型都在event2/listener.h中声明. 一:创建或释放evconnlistener stru ...

  10. 巨蟒python全栈开发-第11阶段 ansible_project2

    一个NB的网站: https://www.toolfk.com/ CDN:将用户的需求送到最近的节点:内容分发网络 有些是专门做CDN的工具 常用的markdown是需要知道的,短信有字数限制. we ...