找回密码
 加入
搜索
楼主: xing999999

[AU3基础] [已解决]局域网内建立华丽的圣诞树,同时也请教各位老师帮忙看看有没有更好的方法。

 火.. [复制链接]
发表于 2015-12-16 14:45:00 | 显示全部楼层
Local $iPid = Run($aExePath[$nRan]) ;运行程序,运行之合会返回进程ID。
ProcessWaitClose($iPid) ,等待之前运行的进程关闭
这么简单的问题,版主您还是别教他用正则吧,正则太复杂,说实话,正则我虽然也懂一点,但是很少用,因为我也不太会,容易用错。
其实用stringinstr,和stringleft就可以解决问题了。
$ip = @IPAddress1
$dian = StringInStr($ip,".")  ;;;;在IP地址中查找第一个 “点” 的位置,默认返回值为第 1个点的位置
$one = StringLeft($ip,$dian - 1)  ;;;取ip地址的第一段,比如192开头的,点在第4个字符位置,我们取4-1,前三个字符就可以了。
MsgBox(0,"",$one)
 楼主| 发表于 2015-12-16 16:14:08 | 显示全部楼层
If MsgBox(1, '圣诞祝福即将降临', '这是一个圣诞祝福,它可能是一颗圣诞树也可能是圣诞球等其他。'& @CRLF & '传说中当你打开它的那一天将获得好运,但它不能离开生它育它的土壤。' )<> 1 Then Exit
Local $ip = StringRegExpReplace(@IPAddress1, '\..+', '');获取IP第一个点之前的数字
If $ip=192 Then
        Local $ping=Ping("192.168.60.99");如果数字是192则ping服务器
        If $ping=0 Then MsgBox(0,"圣诞祝福无法降临","圣诞祝福无法降临");如果无法ping通则提示
        Local $sFile = '\\192.168.60.99\public\sd\3.txt';服务器里的文件路径
Local $All = FileRead($sFile) ;读取内容
      $All = StringReplace($All, @CRLF, "|")
          $Lin = StringSplit($All, "|") 
Local $nRan = Random(1, $Lin[0], 1) ;产生随机数
Local $iPid = Run($Lin[$nRan]) ;运行程序
Else
                $ping=Ping("10.20.12.99");ping 服务器另外一个地址
        If $ping=0 Then MsgBox(0,"圣诞祝福无法降临","圣诞祝福无法降临");无法PING通则提示
                          $sFile = '\\10.20.12.99\public\sd\4.txt';读取另外一个文件
          $All = FileRead($sFile) ;读取内容
          $Lin = StringSplit($All, "|") 
      $nRan = Random(1, $Lin[0], 1) ;产生随机数
      $iPid = Run($Lin[$nRan]) ;运行程序
EndIf
If WinExists("打开文件 - 安全警告") Then
                Send("!{R}")
EndIf
ProcessWaitClose($iPid)
Local $sReg = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
RegDelete($sReg, 'Christmas Garland Light');删除程序退出时候添加的开机启动
RegDelete($sReg, 'Christmas Globe')
RegDelete($sReg, 'Christmas snow globe')
各位高手,我测试过,在IP为192开头段的电脑都可以正常打开,但是在IP为10开头的电脑里无法打开,只会出最开始的提示,点确定后就自动完成了。这是什么原因呢?
 楼主| 发表于 2015-12-16 16:15:37 | 显示全部楼层
我用的是if then else endif 左边右看都没问题啊。。如果$ip=192那么就XXXX,else否则就YYYY,这样用有错吗?
发表于 2015-12-16 16:47:11 | 显示全部楼层
第三行 192 外面加一对引号
 楼主| 发表于 2015-12-16 16:56:56 | 显示全部楼层
回复 19# afan


    加了,额。。。但是执行的效果和以前一样,我屏蔽了192这个网卡,剩10这个网卡。一执行就直接结束了,只能看到最开始的提示框,点确定就自动结束了
 楼主| 发表于 2015-12-16 17:42:42 | 显示全部楼层
问题找到了
          $All = StringReplace($All, @CRLF, "|");少了这句
另外第2部分的
  $ip="10" Then
  $ping=Ping("10.20.12.99")
          If $ping=0 Then MsgBox(0,"圣诞祝福无法降临","圣诞祝福无法降临")
这些都注释就行了。。。
发表于 2015-12-16 17:44:22 | 显示全部楼层
回复 20# xing999999


    第17行改为
$Lin = StringSplit($All, @CRLF, 1)
之前就给你改过,结果你还要走弯路,还是错的…
发表于 2015-12-16 18:12:29 | 显示全部楼层
LZ多加几个排错点即可自行发现问题
Local $ip, $sFile
Local $ip = StringRegExpReplace(@IPAddress1, '\..+', '')        ;获取IP第一个点之前的数字
If $ip = '192' Then
        $ip = '192.168.60.99'
        $sFile = '\\' & $ip & '\public\sd\3.txt'                ;服务器里的文件路径
ElseIf $ip = '10' Then
        $ip = '10.20.12.99'
        $sFile = '\\' & $ip & '\public\sd\4.txt'
Else
        Exit MsgBox(48, $ip, '未知网段,退出')
EndIf

If MsgBox(1, '圣诞祝福即将降临', '这是一个圣诞祝福,它可能是一颗圣诞树也可能是圣诞球等其他。' & @CRLF & _
                '传说中当你打开它的那一天将获得好运,但它不能离开生它育它的土壤。') <> 1 Then Exit

If Not Ping($ip) Then Exit MsgBox(48, '退出', '圣诞祝福无法降临')        ;如果无法ping通则提示

Local $sAll = FileRead($sFile)                        ;读取内容
If $sAll = '' Then Exit MsgBox(48, '退出', '读取文件错误')
Local $aExePath = StringSplit($sAll, @CRLF, 1)        ;拆分
Local $nRan = Random(1, $aExePath[0], 1)        ;产生随机数
If Not FileExists($aExePath[0]) Then Exit MsgBox(48, '退出', $aExePath[0] & @LF & '文件不存在')
Local $iPid = Run($aExePath[$nRan])                ;运行程序

Local $hWnd = WinWait('[REGEXPTITLE:(?i)(打开文件 - 安全警告|frmMain)]'))
If StringInStr(WinGetTitle($hWnd), '打开文件 - 安全警告') Then Send('!{R}')

ProcessWaitClose($iPid)
Local $sReg = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
RegDelete($sReg, 'Christmas Garland Light')        ;删除程序退出时候添加的开机启动
RegDelete($sReg, 'Christmas Globe')
RegDelete($sReg, 'Christmas snow globe')
 楼主| 发表于 2015-12-16 18:16:52 | 显示全部楼层
谢谢老师。。。。
发表于 2015-12-21 09:42:32 | 显示全部楼层
学习一下,多谢楼主分享
发表于 2015-12-22 11:05:25 | 显示全部楼层
学习中,多谢楼主分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 13:23 , Processed in 0.086275 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表