Windows操作系统中,串行通信采用“事件通知”方式,支持数据按块传送
首先呢,找到迅雷在IE右健添加的东东:“用迅雷下载链接”"
Else
objFSO.CreateFolder targetpath & Right(path,Len(path)-Len(sourcepath))
Set folder=objFSO.GetFolder(path)
Set files=folder.files
For Each file in files
targetfile=targetpath & Right(path,Len(path)-Len(sourcepath)) & "" & file.name & ".zip"
Set fp=objFSO.OpenTextFile(targetfile,2,True)
fp.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18,0)
fp.Close
oApp.Namespace(targetfile).CopyHere path & "" & file.name
WScript.Sleep 1000
Next
Set subfolder=folder.subfolders
For Each sfolder in subfolder
GetSourceFile path & "" & sfolder.name
Next
End If
End Function
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set oApp=CreateObject("Shell.Application")
sourcepath="C:\Documents and Settings\Administrator\桌面\Watermarks"
targetpath="D:\temp"
GetSourceFile sourcepath
Set objFSO=Nothing
Set oApp=Nothing
->
一些字符的结果是不同的:
例:VBS:AscW("过")和JS:"过".charCodeAt(0);得到的结果是不同的虽然,可以通过错误句柄来处理这个问题,但是如果能在代码中检测NewValue的长度岂不更好?如果该值超过5个字符,我们既可以通过裁剪取共前5个字符,也可以忽略这个新的字符串而弹出一个错误提示
If (Lcase(Right(Wscript.FullName,11))="wscript.exe") Then
CreateObject("WScript.Shell").Run("%Comspec% /C " &Chr(34)&"mode con cols=100&Cscript.exe //NoLogo "&Chr(34)& Wscript.ScriptFullName &Chr(34)&"&&(Echo 此窗口40秒后自动关闭...&Ping -n 40 127.0.1>nul&Exit)"&Chr(34)),3:Wscript.Quit
Wscript.Quit
End If
Set WMI=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colLoggedEvents=WMI.ExecQuery("Select * from Win32_NTLogEvent Where Logfile='System' And EventCode='6005' Or EventCode='6006' Or EventCode='6008'")
For Each objEvent In colLoggedEvents
Flag=Flag + 1
If Flag=1 Then
Wscript.Echo "本次开机时间: " & UTCtoNow(objEvent.TimeWritten)
ElseIf (Flag Mod 2)=0 Then
G=UTCtoNow(objEvent.TimeWritten)
Else
K=UTCtoNow(objEvent.TimeWritten)
Wscript.Echo "前次开机:"&K&" "&vbTab&"对应关机:"&G&" "&vbTab& "运行时长:" &StoHMS(DateDiff("s", K, G))
End If
Next
Function UTCtoNow(nD)
If Not IsNull(nD) Then
Set SWDT=CreateObject("WbemScripting.SWbemDateTime")
SWDT.Value=nD
UTCtoNow=SWDT.GetVarDate(True)
End If
End Function
Function StoHMS(Sec)
H=Int(Sec/3600) :H1=Sec Mod 3600:M=Int(H1/60) :S=H1 Mod 60
StoHMS=H & "小时" & M & "分钟" & S &"秒"
End Function
1.新建窗体Form1,属性如下:
Caption=“背景花纹的实现”
Borderstyle=3(无最大、最小化按钮)
2.建网格控件Grid1,它的位置和大小将在程序中设置(与Form1同样大),属性为:
Enabled=False(焦点不会落在网格控件Grid1上)
Fillstyle=1(改变所有单元Text特性)
Fixedcols=0(无固定行)
Fixedrows=0(无固定列)
Gridlines=False(网格行不可见),
Visible=True
3.建立图象控件Picture1,程序运行时将背景花纹基本图案放入其中,属性为:
Visible=False(不可见)
Autosize=True(自动调整大小)
4.控件中加入Sheridan3DControls,选取其中的三维命令按钮SSCommand,建立两个按钮:
SSCommand1.Caption=“退出”
SSCommand2.Caption=“更换背景”(演示不同的背景图案)
它们的属性Picture可调用与背景相同或不同的图案,如果使用普通的命令按钮控件Command也可,只是命令按钮无背景图案
VBS测试脚本
Dimv4
Cnxn4.Add1,2
v4=Cnxn4.GetArray1()
Dimx
Forx=Lbound(v4)ToUbound(v4)
MsgBoxv4(x)
Next
论坛叉叉VB提供的多媒体控件(MCI16.OCX),把很多API的函数转化为简单的属性或事件,简化了编程
'程序名称: btlwchk_netinterface.vbs
'程序用途: 监测windows主机网络接口利用率
'创建日期: 2011-09-1
'作者信息: zhangkai
'运行环境: vbs
'处理参数
MonSubject="NetInterface"
Set Args=WScript.Arguments
If (Args.Count<1) Then
Wscript.Echo MonSubject & " -1:command line error"
WScript.Quit(3)
End If
strcid=Args(0)
'获取工作目录
tmparr=Split(Wscript.ScriptFullName,"",-1)
g_strworkdir=tmparr(0)
narr=UBound(tmparr,1)
For i=1 to narr-3
g_strworkdir=g_strworkdir & "" & tmparr(i)
Next
'装载公共库
set g_fileSys=createObject ("Scripting.FileSystemObject")
Sub includeFile (fSpec)
dim file, fileData
set file=g_fileSys.openTextFile (fSpec)
fileData=file.readAll ()
file.close
executeGlobal fileData
set file=nothing
end sub
includeFile g_strworkdir & "\nagios\libexec\libcomm.vbs"
'输出版本和帮助信息
getverhelp strcid,"v1.00"," "
strComputer="."
Set objWMIService=GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
'第1次采样
Set colItems=objWMIService.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface",,48)
Dim BytesTotalPersec1(20),TimeValue1(20),Name1(20),CurrentBandwidth(20),BytesReceivedPerSec1(20),BytesSentPerSec1(20),PacketsReceivedPerSec1(20),PacketsSentPerSec1(20),_
BytesTotalPersec(20),PercentNetwork(20),BytesReceivedPerSec(20),BytesSentPerSec(20),PacketsReceivedPerSec(20),PacketsSentPerSec(20)
n=0
For Each objItem in colItems
Name1(n)=objItem.Name
BytesTotalPersec1(n)=objItem.BytesTotalPersec
BytesReceivedPerSec1(n)=objItem.BytesReceivedPerSec
BytesSentPerSec1(n)=objItem.BytesSentPerSec
PacketsReceivedPerSec1(n)=objItem.PacketsReceivedPerSec
PacketsSentPerSec1(n)=objItem.PacketsSentPerSec
TimeValue1(n)=objItem.Timestamp_PerfTime
CurrentBandwidth(n)=objItem.CurrentBandwidth
TimeBase=objItem.Frequency_PerfTime
n=n+1
Next
'第2次采样
WScript.Sleep 1000
Set colItems=objWMIService.ExecQuery("Select * from Win32_PerfRawData_Tcpip_NetworkInterface",,48)
Dim BytesTotalPersec2(20),TimeValue2(20),Name2(20),BytesReceivedPerSec2(20),BytesSentPerSec2(20),PacketsReceivedPerSec2(20),PacketsSentPerSec2(20)
k=0
For Each objItem in colItems
Name2(k)=objItem.Name
BytesTotalPersec2(k)=objItem.BytesTotalPersec
BytesReceivedPerSec2(k)=objItem.BytesReceivedPerSec
BytesSentPerSec2(k)=objItem.BytesSentPerSec
PacketsReceivedPerSec2(k)=objItem.PacketsReceivedPerSec
PacketsSentPerSec2(k)=objItem.PacketsSentPerSec
TimeValue2(k)=objItem.Timestamp_PerfTime
k=k+1
Next
j=0
For i=0 to n-1
If TimeValue2(j) - TimeValue1(j)=0 Then
strnetwork="BytesTotalPersec=0"
Else
'带宽利用率=(BytesReceivedPerSec + BytesSentPerSec)*8*100/ CurrentBandwidth
'计算利用率
BytesTotalPersec(j)=(BytesTotalPersec2(j) - BytesTotalPersec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)
PercentNetwork(j)=BytesTotalPersec(j)*8*100 / CurrentBandwidth(j)
PercentNetwork(j)=round(PercentNetwork(j),2)
'计算BytesReceivedPerSec
BytesReceivedPerSec(j)=(BytesReceivedPerSec2(j) - BytesReceivedPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)/1024
BytesReceivedPerSec(j)=round(BytesReceivedPerSec(j),2)
'计算BytesSentPerSec
BytesSentPerSec(j)=(BytesSentPerSec2(j) - BytesSentPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)/1024
BytesSentPerSec(j)=round(BytesSentPerSec(j),2)
'计算PacketsReceivedPerSec
PacketsReceivedPerSec(j)=(PacketsReceivedPerSec2(j) - PacketsReceivedPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)
PacketsReceivedPerSec(j)=round(PacketsReceivedPerSec(j),2)
'计算PacketsSentPerSec
PacketsSentPerSec(j)=(PacketsSentPerSec2(j) - PacketsSentPerSec1(j)) / ((TimeValue2(j) - TimeValue1(j)) / TimeBase)
PacketsSentPerSec(j)=round(PacketsSentPerSec(j),2)
'计算CurrentBandwidth
CurrentBandwidth(j)=CInt(CurrentBandwidth(j)/1000/1000)
End If
If j=0 Then
Wscript.Echo MonSubject & " 0:OK|Name=" & Name1(j) & ",PercentNetwork=" & PercentNetwork(j) & ",BytesReceivedPerSec=" & BytesReceivedPerSec(j) & ",BytesSentPerSec=" & BytesSentPerSec(j) _
& ",PacketsReceivedPerSec=" & PacketsReceivedPerSec(j) & ",PacketsSentPerSec=" & PacketsSentPerSec(j) & ",CurrentBandwidth=" & CurrentBandwidth(j)
End If
'Wscript.Echo MonSubject & " 0:OK|" & Name1(j) & ",PercentNetwork=" & PercentNetwork
j=j+1
Next
。