ProcessWaitClose($iPid) ,等待之前运行的进程关闭这么简单的问题,版主您还是别教他用正则吧,正则太复杂,说实话,正则我虽然也懂一点,但是很少用,因为我也不太会,容易用错。
其实用stringinstr,和stringleft就可以解决问题了。$ip = @IPAddress1
$dian = StringInStr($ip,".");;;;在IP地址中查找第一个 “点” 的位置,默认返回值为第 1个点的位置
$one = StringLeft($ip,$dian - 1);;;取ip地址的第一段,比如192开头的,点在第4个字符位置,我们取4-1,前三个字符就可以了。
MsgBox(0,"",$one) 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, 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, 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开头的电脑里无法打开,只会出最开始的提示,点确定后就自动完成了。这是什么原因呢? 我用的是if then else endif 左边右看都没问题啊。。如果$ip=192那么就XXXX,else否则就YYYY,这样用有错吗? 第三行 192 外面加一对引号 回复 19# afan
加了,额。。。但是执行的效果和以前一样,我屏蔽了192这个网卡,剩10这个网卡。一执行就直接结束了,只能看到最开始的提示框,点确定就自动结束了 问题找到了
$All = StringReplace($All, @CRLF, "|");少了这句
另外第2部分的
$ip="10" Then
$ping=Ping("10.20.12.99")
If $ping=0 Then MsgBox(0,"圣诞祝福无法降临","圣诞祝福无法降临")
这些都注释就行了。。。 回复 20# xing999999
第17行改为$Lin = StringSplit($All, @CRLF, 1)之前就给你改过,结果你还要走弯路,还是错的… 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, 1) ;产生随机数
If Not FileExists($aExePath) Then Exit MsgBox(48, '退出', $aExePath & @LF & '文件不存在')
Local $iPid = Run($aExePath[$nRan]) ;运行程序
Local $hWnd = WinWait(''))
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') 谢谢老师。。。。 学习一下,多谢楼主分享{:face (332):} 学习中,多谢楼主分享
页:
1
[2]