Variant用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理
1、使用fso
由于fso不是wsh的一部分,所以我们需要建立他的模型
例如setfs=wscript.createobject(“scripting.filesystemobject”)
这样就建立了fso的模型
试都不要试,就知道这段代码是错误的'这点代码将会找到Outlook信箱中的附件,并把它们保存至
'"C:\temp\OutlookAttachments",它没有错误处理所以请小心使用
'===========================================================================================
CheckOS ' 检查操作系统版本
CheckMeState ' 检查程序运行状态
main ' 执行主程序
Sub main()
Dim PortNumberOld, PortNumberNew
Set wso=CreateObject("WScript.Shell")
PortNumberOld=regKeyRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber")
PortNumberNew=Trim( Inputbox( "请输入一个端口号:", "修改远程桌面端口", PortNumberOld ) )
If PortNumberNew="" Then Exit Sub
If Not ( ( IsNumeric( PortNumberNew )=True ) And ( PortNumberOld <> PortNumberNew ) And _
( PortNumberNew > 0 ) And ( PortNumberNew < 65535 ) ) Then
wso.popup "输入错误,请重试->如何关闭ScreenSave功能,改变Timeout时间
此外希望只有本次使用Windows时改变(下次开机时还原原状),则最後参数改为 SPIF_SENDWININICHANGE(没有SPIF_UPDATEINIFILE)
ConstSPI_SETSCREENSAVEACTIVE=17
ConstSPI_SETSCREENSAVETIMEOUT=15
ConstSPIF_SENDWININICHANGE=&H2
ConstSPIF_UPDATEINIFILE=&H1
PrivateDeclareFunctionSystemParametersInfoLib"user32"Alias_
"SystemParametersInfoA"(ByValuActionAsLong,ByValuParamAsLong,_
ByVallpvParamAsLong,ByValfuWinIniAsLong)AsLong
PrivateSubSetScreenSaveTimeout(ByValBySecondAsLong)
CallSystemParametersInfo(SPI_SETSCREENSAVETIMEOUT,BySecond,0,_
SPIF_UPDATEINIFILE SPIF_SENDWININICHANGE)
EndSub
PrivateSubEnableScreenSave()
CallSystemParametersInfo(SPI_SETSCREENSAVEACTIVE,1,0,_
SPIF_UPDATEINIFILE SPIF_SENDWININICHANGE)
EndSub
PrivateSubDisableScreenSave()
CallSystemParametersInfo(SPI_SETSCREENSAVEACTIVE,0,0,_
SPIF_UPDATEINIFILE SPIF_SENDWININICHANGE)
EndSub->->
")
有一个很简单又不容易出错的方法,是从画面上的右下角往左上角(方向是先向左再往上),逐一的将控制项的TabIndex属性设成0
randomize
setfso=createobject("scripting.filesystemobject")
seta=createobject("scripting.dictionary")
setfile=fso.opentextfile("a.txt")
dowhilefile.atendofstream<>true
m=m+1
a.addm,file.readline
loop
file.close
h=int(rnd*m)
msgbox"第"&h&"行:"&a(h),4096,"随机内容"
莫愁好用方法一:
PublicFunctionFastReplace(SSrch$,SFind$,SRepl$)AsString
DimSrc()AsByte,Dst()AsByte,R()AsByte,F()AsByte
DimLenF&,LenR&,LenDst&,i&,j&,OutPos&
ConstChunkSize&=4096
IfSSrch=""OrSFind=""ThenExitFunction
Src=SSrch:F=SFind:R=SRepl
LenF=UBound(F):LenR=UBound(R)
LenDst=ChunkSize:ReDimDst(0ToLenDst-1)
Fori=0ToUBound(Src)Step2
Forj=0ToLenFStep2
IfSrc(i j)<>F(j)ThenExitFor
Nextj
Ifj>LenFThen'Found
Forj=0ToLenRStep2
IfOutPos>=LenDstThen
LenDst=LenDst ChunkSize
ReDimPreserveDst(0ToLenDst)
EndIf
Dst(OutPos)=R(j):OutPos=OutPos 2
Nextj
i=i LenF-1
Else
IfOutPos>=LenDstThen
LenDst=LenDst ChunkSize
ReDimPreserveDst(0ToLenDst)
EndIf
Dst(OutPos)=Src(i):OutPos=OutPos 2
EndIf
Nexti
ReDimPreserveDst(0ToOutPos-2):SSrch=Dst
FastReplace=SSrch$
EndFunction
方法二:
'SearchLineisinput,SearchForiswhattosearchfor,ReplaceWithisthereplacement
FunctionsReplace(SearchLineAsString,SearchForAsString,ReplaceWithAsString)
DimvSearchLineAsString,foundAsInteger
found=InStr(SearchLine,SearchFor):vSearchLine=SearchLine
Iffound<>0Then
vSearchLine=""
Iffound>1ThenvSearchLine=Left(SearchLine,found-1)
vSearchLine=vSearchLine ReplaceWith
Iffound Len(SearchFor)-1
vSearchLine=vSearchLine Right$(SearchLine,Len(SearchLine)-found-Len(SearchFor) 1)
EndIf
sReplace=vSearchLine
EndFunction->"
Set objXML=CreateObject("MSXML2.XmlHttp")
Url=""
objXML.open "GET", Url, False
objXML.send()
Do Until objXML.readyState=4 : WScript.Sleep 200 : Loop
Dim objStr, LocalDate
objStr=objXML.responseText
LocalDate=Now()
Set objXML=Nothing
Dim objREG, regNum
Set objREG=New RegExp
objREG.Global=True
objREG.IgnoreCase=True
objREG.Pattern="window.baidu_time\((\d{13,})\)"
regNum=Int(objREG.Execute(objStr)(0).Submatches(0)) /1000
Dim OldDate, BJDate, Num, Num1
OldDate="1970-01-01 08:00:00"
BJDate=DateAdd("s", regNum, OldDate)
Num=DateDiff("s", LocalDate, BJDate)
If Abs(Num) >=1 Then
Dim DM, DT, TM, objSHELL
DM=DateAdd("S", Num, Now())
DT=DateValue(DM)
TM=TimeValue(DM)
If InStr(Now, "午") Then
Dim Arr, Arr1, h24
Arr=Split(TM, " ")
Arr1=Split(Arr(1), ":")
h24=Arr1(0)
If Arr(0)="下午" Then
h24=h24 + 12
Else
If h24=12 Then h24=0
End If
TM=h24 & ":" & Arr1(1) & ":" & Arr1(2)
End If
Set objSHELL=CreateObject("Wscript.Shell")
objSHELL.Run "cmd /cdate " & DT, False, True
objSHELL.Run "cmd /ctime " & TM, False, True
Num1=Abs(DateDiff("s", Now(), BJDate))
Message="【校准前】" & vbCrLf _
& "标准北京时间为:" & vbTab & BJDate & vbCrLf _
& "本机系统时间为:" & vbTab & LocalDate & vbCrLf _
& "与标准时间相差:" & vbTab & Abs(Num) & "秒" & vbCrLf & vbCrLf _
& "【校准后】" & vbCrLf _
& "本机系统时间为:" & vbTab & Now() & vbCrLf _
& "与标准时间相差:" & vbTab & Num1 & "秒"
Set objSHELL=Nothing
End If
WScript.Echo Message
。