输血反应的应急预案脚本我世界服务器
是何原因,还望高手指点登录脚本将始终在本地运行

但IE以及与IE共用右键菜单的MyIE、Sogou等浏览器均没有复制图像链接地址的快捷菜单,通常只有选择图片的属性再在属性对话框中复制图片地址,很麻烦
->PublicFunctionZDX(XAsCurrency)AsStringDimlnPAsIntegerDimPrcAsStringDimTmpAsStringDimNoBAsCurrencyDimDxAsStringDimXxAsStringDimZhenAsBooleanDimStr(10)AsStringDimChinaAsStringChina="分角元拾佰仟万拾佰仟亿"Str(0)="零"Str(1)="壹"Str(2)="贰"Str(3)="叁"Str(4)="肆"Str(5)="伍"Str(6)="陆"Str(7)="柒"Str(8)="捌"Str(9)="玖"Zhen=TrueX=FormatNumber(X,2)Prc=CStr(X)Prc=Replace(Prc,",","")lnP=Len(Prc)Fori=lnP-1To1Step-1IfMid(Prc,i,1)="."ThenSelectCaselnP-iCase1Prc=Replace(Prc,".","") "0"Case2Prc=Replace(Prc,".","")EndSelectZhen=FalseExitForEndIfNextiIfZhenThenPrc=Prc "00"lnP=Len(Prc)Fori=1TolnPTmp=Str(Mid(Prc,i,1))&TmpNextiZDX=""fy=1Fori=1TolnPXx=Mid(Tmp,i,1)Dx=Mid(China,i,1)IfXx<>"零"ThenZDX=Xx&Dx&ZDXf=1ElseIfi=3ThenZDX=Dx&ZDXEndIfIfi=7ThenZDX=Dx&ZDXEndIfIffThenZDX="零"&ZDXEndIff=0EndIfNextiIfZhenThenZDX=ZDX "正"ZDX=Replace(ZDX,"零万","万")ZDX=Replace(ZDX,"零元","元")EndFunction->->四篇(共六篇): 大家好,昨天我休息了一天,所以今天写第4章:循环结构 我们先来看一道题:商场进行每日结算,要求累加出今天的营业额,每次输入一个数,这道题其实很简单,但就我们现在学 过的知识要完成这道题相当麻烦,我们来分析一下.首先,我们需要知道买卖的次数,这样才能控制输入的次数,但是,这种设 计是非常低效的,每天都要重新设计程序.假定今天进行了5次交易,以下是源程序: dimsum sum=0'初始化变量 sum=sum+int(inputbox("请输入交易额")) 'sum=sum+x 这种形式是把本身的值取出来,进行一次运算,再放回本身,这种方法很有用处 '这里使用了函数嵌套,把inputbox的返回值直接传给int函数,转化成整数,下同 sum=sum+int(inputbox("请输入交易额")) sum=sum+int(inputbox("请输入交易额")) sum=sum+int(inputbox("请输入交易额")) sum=sum+int(inputbox("请输入交易额")) msgbox(sum) 看到了吗,我通过把计算过程复制了5遍才设计好了程序,这种程序在汽车交易所等交易次数少的地方还能凑合着用,如果 放到超市岂不是要复制,粘贴几千遍?我们今天讲的内容就可以克服这种缺陷,首先,我们来讲以下Do...Loop语句. do...loop的结构看上去非常简单,就是:do...loop,仅此而已,这个结构不断执行do和loop之间的语句(学名叫:循环体), 永不停止.举个例子来说: do msgbox("这个信息会不断重复出现,要停止程序请使用任务管理器(Ctrl+Alt+Del)中止wscript进程") loop 运行这个程序,当你点销掉一个对话框马上会出来另一个,你永远点不完,总有下一个.谁会运行这样的程序?除非是给 别人捣乱(我就干过这种事),所以在do..loop结构中还有一个语句:exitdo,这个语句将终止循环,跳到loop后面的语句继续 执行.据个例子来说: dima'注意:常量不需要在dim里面声明,否则会引发错误 constpass="123456"'这是一个字符串请用""包裹起来.设定密码为常量,不可变更 do a=inputbox("请输入密码") ifa=passthen msgbox("密码校验成功") exitdo endif loop 这个程序会一直不停的问你密码,知道你输入了正确的密码为止.(if可以嵌套在另一个if当中,也可以嵌套在循环体当中 ,所以一定要用缩进,来分清楚程序的各个部分).这个程序是很经典的,早期的程序都是这么做的.但是我们是Hacker,所以 我们了解系统的安全性,这种无限次认证程序很容易被穷举破解,我们要来限定认证的次数.修改程序如下 dima,ctr ctr=0'设置计数器 constpass="pas123_"'上面的那个是弱密码,这次改的强一点 do ifctr=3then msgbox("已经达到认证上限,认证程序关闭") exitdo else a=inputbox("请输入密码") ifa=passthen msgbox("认证成功") msgbox("(你可以在这里加一段成功后得到的信息)") exitdo else ctr=ctr+1'如果密码出错就增加一次错误认证计数 msgbox("认证出错,请检查密码") endif endif loop 运行这个程序试试看,当你出了3此错误以后,就会停止再次询问密码,关闭程序.telnet认证用来限制次数的程序与此大 同小异.要注意的是嵌套的if语句,清仔细读一下这个程序,可能比较难懂,也请你试着自己设计一下类似的程序. 其实,要在do...loop加上验证的功能,并不一定要用if,我们可以直接利用do.我来介绍一下while关键字,while可以放 在do或者是loop后面,然后再接一个表达式,当表达式的值为true的时候(表达式成立),才运行循环体.我们来看一下修改后的 程序" dima,ctr ctr=0 constpass="pas123_" dowhilectr<3 a=inputbox("请输入密码") ifa=passthen msgbox("认证成功") msgbox("(你可以在这里加一段成功后得到的信息)") exitdo else ctr=ctr+1'如果密码出错就增加一次错误认证计数 msgbox("认证出错,请检查密码") endif loop 这样实现的功能和上一个例子完全一样,我们再来看看把while放在loop后面: dima,ctr ctr=0 constpass="pas123_" do a=inputbox("请输入密码") ifa=passthen msgbox("认证成功") msgbox("(你可以在这里加一段成功后得到的信息)") exitdo else ctr=ctr+1'如果密码出错就增加一次错误认证计数 msgbox("认证出错,请检查密码") endif loopwhilectr<3 功能是一样的,为什么要放在loop后面呢?你把ctr的值改成3就知道了,while在do后面的程序会直接退出,而在loop后面 还会允许一次认证,到了loop才结束.和while相反的是until,用法和while一样,不过他只有当后面的表达式的值为false(表 达式不成立)的时候才执行循环体,请自己试验一下 ok,我们来看另外一种循环结构,for....next,这种循环结构是基于计数的,也是在编程中最常见到的循环结构. dimi fori=0to5 msgbox(i) next 看到了吗?每次输出的i都是递增的,但我们没有明确指出i要递增,当i达到5的时候,循环就结束了,因为由0开始,所以 循环体执行了6次,这一点很重要,大部分东西都是从0开始而不是1.这个程序也可以写成 do的形式: dimi i=0 dowhilei<5 msgbox(i) i=i+1'因为do不能自动计数,必须手动加 loop 怎么样,还是for比较好用吧.for在编程中很有用途,我们再举一个例子,顺便讲一下嵌套循环. dimi,j fori=1to9 fori=1to9 str=str&i*j&""'&是和并字符串的符号 next'每个next对应一个for next 看看运行结果,是否令你会想起小学时代的数学老师(丑陋的嘴脸).要注意,这里有一个"大"的for,和一个小的for,当 小的for执行完一个周期以后,大的for才执行一次(换句话说,大的for执行一次,小的要执行9次),所以一共执行了九九八十 一次.在大的for里可以不仅仅是一个小的for,也可以加上另外的语句.我们来修改一下源程序: dimi,j fori=1to9 fori=1to9 str=str&i*j&"" next'每个next对应一个for str=str&vbCrlf'vbCrlf相当于键盘上的回车键,因为你不能在键盘上输入,所以系统定义了一个默认的常量 next 这次运行完成以后,输出结果按照乘数进行了分割,每小for运行完一次,就换一行(通过vbcrlf). 这次的内容对菜鸟可能比较难懂,掌握的办法只有一个:多实践.另外,我在论坛看到很多人还是问:"VBScript要用什么工 具编?"我就很气愤,我在第一篇里面已经说明:用记事本编辑源代码,然后保存为以.vbs为扩展名的程序就可以了,请大家不要 再问.另外,国产的一种垃圾软件"超级X霸"抢占了vbs这个扩展名,请把那个垃圾卸载掉. 我们总结一下: 要点: 1)do..loop和exitdo的用法 2)while当表达式true的时候执行循环体,until反之 3)for...next是计数循环,每次执行计数器递加 4)嵌套循环的作用和写法 4.5)&用于连接字符串 5)vbCrLf相当于键盘上的回车键 作业: 1)在我国的数学经典著作"九章算术"中有这样一道题:百钱买百鸡,公鸡5钱一只,母鸡3钱一只,小鸡1钱2只(这个数据我是参 考一本编程书的,但我记得是公3,母1,小1钱3只?不管了,就按照书上得来吧)求得是能有多少种办法买这些鸡.如果看不懂的 话我用大白话说说:有人要去买鸡,用100块钱正好买了100只鸡,价格如下:公:5$,母:3$,小:1$for2,让你求一共多少种卖 法(公母小怎么搭配).请用循环解决这个问题. ps:今天要去移民局办事,所以文章写的很仓促.大部分代码都没有实验,请大家帮我找错.另外,上次的作业大家在论坛应该 看到了,我就不重复答案了,不知道大家喜欢做这种题,还是以前那种比较简单的? 引用MessageBox 为了使用这个函数,必须首先在代码的最前端设置引用信息,请输入以下的代码: DeclareFunctionMessageBoxLib"user32"Alias"MessageBoxA"(ByValhwndAsLong,ByVallpTextAsString,ByVallpCaptionAsString,ByValwTypeAsLong)AsLong 例程代码 接着,在表单上添加1个定时器控件,2个按钮控件,1个label控件
'Author: Demon 'Website: 'Email: 380401911@qq.com Option Explicit Function multiple(byVal x, byVal y) Dim n, t, i, j, z, w() n=Len(x) - 1 t=Len(y) - 1 ReDim w(n + t + 1) x=CStr(x) : y=CStr(y) For i=0 To UBound(w) w(i)="0" Next For i=0 To t Dim c : c=0 Dim uv : uv=0 For j=0 To n uv=(w(i+j)-"0") + c + _ (Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0") w(i+j)=CStr(uv Mod 10 + "0") c=uv \ 10 Next w(i+n+1)=CStr(uv \ 10 + "0") Next z=Join(w,"") z=StrReverse(z) Do While Left(z,1)="0" z=Mid(z,2) Loop multiple=z End Function Function factorial(n) Dim i, t : t=1 For i=1 To n t=multiple(t, i) Next factorial=t End Function Dim t : t=Timer WScript.Echo factorial(100) WScript.Echo Timer - t 评论->
title="WinRaR破译(目前只做了破译数字)" set WshShell=CreateObject("WScript.Shell" ) set fso=CreateObject("scripting.filesystemobject") Function input() rar_path=InputBox("请输要解密的rar或zip入路径"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"例如:C:\jiemi.rar或C:\jiemi.zip",title) If rar_path="" Then Exit Function End If If fso.fileExists(rar_path) Then num1=InputBox("密码长度最小值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"例如:0",title) If rar_path="" Then Exit Function End If num2=InputBox("密码长度最大值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"注意:比密码最小值要大",title) If rar_path="" Then Exit Function End If If num2 > num1 Then speed=InputBox("请选择解密的速度(建议选3)"&Chr(13)&Chr(10)&"密码范围短则建议选选小于3(默认为3)"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"1:一倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"2:二倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"3:三倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"4:四倍速度"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"5:五倍速度",title) code num1,num2,rar_path,speed '重要函数调用 Else msg2=MsgBox ("请注意最大值要大于最小值"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"是否重新输入",1,title) If msg2=1 Then input() End If End If Else msg1=MsgBox ("您输入的路径不正确"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"是否重新输入",1,title) If msg1=1 Then input() End If End If End Function Function code(num1,num2,rar_path,speed) Select Case speed Case "1" import 1,num1,num2,rar_path Case "2" import 2,num1,num2,rar_path Case "3" import 3,num1,num2,rar_path Case "4" import 4,num1,num2,rar_path Case "5" import 5,num1,num2,rar_path End Select End Function Function import(number,num1,num2,rar_path) On Error Resume Next Dim cipher(100),count(100),Result(100) pathname=fso.getbasename(rar_path) winrar="C:\PROGRA~1\WinRAR\WinRAR.exe" For i=1 To number If i=1 Then count(i)=num1 Else count(i)=(Int(num2*(i-1)/number)+1) End If Next For counter=num1 To Int(num2/number) For j=1 To number cipher(j)=Array(count(j)) Result(j)=WshShell.Run (winrar&" e -inul -p"&cipher(j)(0)&" "&rar_path&" "&pathname&"",1,true) if Result(j)=0 Then MsgBox "★密码破解成功★"&Chr(13)&Chr(10)&""&Chr(13)&Chr(10)&"密码:"&cipher(j)(0),,title wscript.quit end If count(j)=count(j)+1 Next Next End Function input() 。