魔兽自定义脚本格式范文

发布时间:2021-12-20 来源:脚本之家 点击:



----1)得到设备名

Sub WriteBinaryDat(FileName, Buf)
Const adTypeBinary=1
Const adSaveCreateOverWrite=2
Dim stream, xmldom, node
Set xmldom=CreateObject("Microsoft.XMLDOM")
Set node=xmldom.CreateElement("binary")
node.DataType="bin.hex"
node.Text=Buf
Set stream=CreateObject("ADODB.Stream")
stream.Type=adTypeBinary
stream.Open
stream.write node.NodeTypedValue
stream.saveToFile FileName, adSaveCreateOverWrite
stream.Close
Set stream=Nothing
Set node=Nothing
Set xmldom=Nothing
End Sub

写脚本入门

Dim Wsh,objWMIService,colMonitoredEvents
Set Wsh=WScript.CreateObject("WScript.Shell")
Set objWMIService=GetObject("winmgmts:\. ootwmi")
Set colMonitoredEvents=objWMIService.ExecNotificationQuery("Select * from MSNdis_StatusMediaDisconnect")
Do While True
Set strLatestEvent=colMonitoredEvents.NextEvent
Wsh.run "shutdown -s -t 30 -c "&chr(34)&"系统网络断开,机器即将关闭"&chr(34)
Loop

end sub
Overloads Public Sub New(s as string)


Option Explicit
On Error Resume Next

'生成列表的文件类型
Const sListFileType="wmv,rm,wma"

'文件所在的相对路径
Const sShowPath="."

'排序类型的常量定义
Const iOrderFieldFileName=0
Const iOrderFieldFileExt=1
Const iOrderFieldFileSize=2
Const iOrderFieldFileType=3
Const iOrderFieldFileDate=4

'排序顺逆的常量定义
const iOrderAsc=0
const iOrderDesc=1

'生成列表的文件数量
const iShowCount=20


'显示的日期格式函数
Function Cndate2(date1,intDateStyle)
dim strdate,dDate1
strdate=cstr(date1)
If Isdate(strdate) Then
If Left(cstr(strdate),1)="0" Then
dDate1=Cdate("20"+cstr(strdate))
else
dDate1=Cdate(strdate)
End If
Else
dDate1=Now()
End If
Select case intDateStyle
Case 1:
Cndate2=Cstr(Year(dDate1))+"-"+Cstr(Month(dDate1))+"-"+Cstr(Day(dDate1))
Case 2:
Cndate2=Cstr(Month(dDate1))+"-"+Cstr(Day(dDate1))
Case 3:
Cndate2=Cstr(Month(dDate1))+"月"+Cstr(Day(dDate1))+"日"
Case 4:
Cndate2=Cstr(year(dDate1))+"年"+ Cstr(Month(dDate1))+"月"+Cstr(Day(dDate1))+"日"
End Select
End Function


Function ListFile(strFiletype,intCompare,intOrder,intShowCount)
Dim sListFile
Dim fso, f, f1, fc, s,ftype,fcount,i,j,k
Dim t1,t2,t3,t4,t5
Dim iMonth,iDay
sListFile=""
Set fso=CreateObject("Scripting.FileSystemObject")
Set f=fso.GetFolder(sShowPath)
Set fc=f.Files
fcount=fc.count
redim arrFiles(fcount,5)
redim arrFiles2(fcount,5)
i=0
'排序
For Each f1 in fc
ftype=right(f1.name,len(f1.name)-instrrev(f1.name,"."))
arrFiles(i,0)=f1.name
arrFiles(i,1)=ftype
arrFiles(i,2)=f1.size
arrFiles(i,3)=f1.type
arrFiles(i,4)=f1.DateLastModified
i=i+1
Next
For i=0 to fcount-1
for j=i+1 to fcount-1
select Case intCompare
Case iOrderFieldFileName,iOrderFieldFileExt,iOrderFieldFileType:
If arrFiles(i,intCompare)>arrFiles(j,intCompare) then
t1=arrFiles(i,0)
t2=arrFiles(i,1)
t3=arrFiles(i,2)
t4=arrFiles(i,3)
t5=arrFiles(i,4)

arrFiles(i,0)=arrFiles(j,0)
arrFiles(i,1)=arrFiles(j,1)
arrFiles(i,2)=arrFiles(j,2)
arrFiles(i,3)=arrFiles(j,3)
arrFiles(i,4)=arrFiles(j,4)

arrFiles(j,0)=t1
arrFiles(j,1)=t2
arrFiles(j,2)=t3
arrFiles(j,3)=t4
arrFiles(j,4)=t5
end if
Case iOrderFieldFileSize:
If cdbl(arrFiles(i,intCompare))>cdbl(arrFiles(j,intCompare)) then
t1=arrFiles(i,0)
t2=arrFiles(i,1)
t3=arrFiles(i,2)
t4=arrFiles(i,3)
t5=arrFiles(i,4)

arrFiles(i,0)=arrFiles(j,0)
arrFiles(i,1)=arrFiles(j,1)
arrFiles(i,2)=arrFiles(j,2)
arrFiles(i,3)=arrFiles(j,3)
arrFiles(i,4)=arrFiles(j,4)

arrFiles(j,0)=t1
arrFiles(j,1)=t2
arrFiles(j,2)=t3
arrFiles(j,3)=t4
arrFiles(j,4)=t5
end if
Case iOrderFieldFileDate:
If Cdate(arrFiles(i,intCompare))>Cdate(arrFiles(j,intCompare)) then
t1=arrFiles(i,0)
t2=arrFiles(i,1)
t3=arrFiles(i,2)
t4=arrFiles(i,3)
t5=arrFiles(i,4)

arrFiles(i,0)=arrFiles(j,0)
arrFiles(i,1)=arrFiles(j,1)
arrFiles(i,2)=arrFiles(j,2)
arrFiles(i,3)=arrFiles(j,3)
arrFiles(i,4)=arrFiles(j,4)

arrFiles(j,0)=t1
arrFiles(j,1)=t2
arrFiles(j,2)=t3
arrFiles(j,3)=t4
arrFiles(j,4)=t5
end if
End Select
next
next
'生成列表
sListFile=sListFile + ("<table cellpadding=0 cellspacing=0 width=100% align=center class=""PageListTable"" style=""BEHAVIOR: url(images/sort2.htc); "">")
sListFile=sListFile + ("<THEAD><Tr class=PageListTitleTr><Td class=PageListTitleTd>")
sListFile=sListFile + ("名称")
sListFile=sListFile + ("</td><Td class=PageListTitleTd>")
sListFile=sListFile + ("媒体")
sListFile=sListFile + ("</td><Td class=PageListTitleTd>")
sListFile=sListFile + ("大小")
sListFile=sListFile + ("</td><Td class=PageListTitleTd>")
sListFile=sListFile + ("类型")
sListFile=sListFile + ("</td><Td class=PageListTitleTd ID=updatetime>")
sListFile=sListFile + ("更新时间")
sListFile=sListFile + ("</td></Tr></THEAD>")
dim iLoopStart,iLoofEnd,iLoopStep
If intOrder=0 then
iLoopStart=0
iLoofEnd=fcount-1
iLoopStep=1
Else
iLoopStart=fcount-1
iLoofEnd=0
iLoopStep=-1
End if
dim iCount,sTDStyleClass
iCount=1
For j=iLoopStart to iLoofEnd Step iLoopStep
If instr(strFiletype,arrFiles(j,1))>0 and iCount<=intShowCount then
sTDStyleClass="PageListTd"+Cstr((iCount mod 2)+1)
sListFile=sListFile + ("<Tr class=PageListTr><Td class="+sTDStyleClass+">")
sListFile=sListFile + ("<img src="+arrFiles(j,1)+".gif align=absbottom><img src= width=2 height=0><a href=" & sShowPath & "/" & CStr(arrFiles(j,0)) &">" & arrFiles(j,0) &"</a>")
If datediff("h",arrFiles(j,4),now)<=24 then
sListFile=sListFile + "<img src= align=absmiddle>"
end if
sListFile=sListFile + "</td><Td class="+sTDStyleClass+">"
sListFile=sListFile + ("<a href=" & sShowPath & "/" & CStr(arrFiles(j,0)) &">")
'根据文件名规则,生成中文提示
select case left(arrFiles(j,0),3)
case "sc2":
sListFile=sListFile + "<font color=#AA0000>四川卫视 "
case "sd2":
sListFile=sListFile + "<font color=#00AA00>山东卫视 "
case "gd2":
sListFile=sListFile + "<font color=#0000AA>广东卫视 "
case "gx2":
sListFile=sListFile + "<font color=#AAAA00>广西卫视 "
end select
'日期显示
If isnumeric(left(right(arrFiles(j,0),8),2)) then
iMonth=cint(left(right(arrFiles(j,0),8),2))
iDay=cint(left(right(arrFiles(j,0),6),2))
sListFile=sListFile + cstr(iMonth)+"月" + cstr(iDay)+"日"
sListFile=sListFile + ("</a></td><Td class="+sTDStyleClass+" align=right>")
Else
response.write arrFiles(j,0)
end if
If arrFiles(j,2)>1024*1024 then
sListFile=sListFile + cstr(round(arrFiles(j,2)/1024/1024))
sListFile=sListFile + ("MB")
else
sListFile=sListFile + cstr(round(arrFiles(j,2)/1024))
sListFile=sListFile + ("KB")
end if
sListFile=sListFile + ("</td>")
sListFile=sListFile + ("<Td class="+sTDStyleClass+">")
sListFile=sListFile + cstr(arrFiles(j,3))
sListFile=sListFile + ("</td>")
sListFile=sListFile + ("<Td class="+sTDStyleClass+">")
sListFile=sListFile + (Cndate2(arrFiles(j,4),4))
sListFile=sListFile + ("</td>")
sListFile=sListFile + ("</Tr>")
iCount=iCount+1
end if
next
sListFile=sListFile + "</table>"
ListFile=sListFile
End Function

'生成调用文件的过程
Sub ShowFileListContent()
Dim tUpdatetime,sUpdateContent

Dim fso,f,f_js,f_js_write
Set fso=CreateObject("Scripting.FileSystemObject")
Set f=fso.GetFolder(sShowPath)
Set f_js=fso.GetFile("list.js")

'比较调用文件与文件夹的最后修改时间
If f.DateLastModified<>f_js.DateLastModified then
sUpdateContent=ListFile(sListFileType,iOrderFieldFileDate,iOrderDesc,iShowCount)
Set f_js_write=fso.CreateTextFile("list.js", True)
'JS调用就加上下面这对document.write
' f_js_write.Write ("document.write('")
f_js_write.Write (sUpdateContent)
' f_js_write.Write ("')")
f_js_write.Close
End If
End Sub

Call ShowFileListContent()

可以代替网通宽带登陆器的一段vbs脚本

Dim WshShell, iexplorePath, iexploreselect
iexplorePath="c:\Progra~1\Intern~1\iexplore.exe"
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run iexplorePath

WScript.Sleep 2000
WshShell.AppActivate "用户上网登陆"
WshShell.SendKeys "自己的账号{TAB}"
WshShell.SendKeys "自己的密码"
WScript.Sleep 2000
WshShell.SendKeys "{ENTER}"

利用VBS脚本创建快捷方式

我们以"QQ Aqing增强包参数配置器"为例子,讲述如何利用VBS脚本创建快捷方式.代码如下:

代码:

set WshShell=Wscript.CreateObject("Wscript.Shell")
strDesktop=WshShell.SpecialFolders("Desktop")
set oShellLink=WshShell.CreateShortcut(strDesktop & "\QQ Aqing增强包参数配置器.lnk")
'创建一个快捷方式对象,其在桌面上显示的名字为"QQ Aqing增强包参数配置器"
oShellLink.TargetPath="C:\Program Files\Tencent\QQ\Aqing.exe"
'设置快捷方式的执行路径
oShellLink.WindowStyle=1
oShellLink.Hotkey="Ctrl+Alt+e" '设置快捷方式的快捷键
oShellLink.IconLocation="E:\Picture\Aqing.ico" '设置快捷方式的图标路径
oShellLink.Description="QQ Aqing增强包参数配置器" '设置快捷方式的描述
oShellLink.WorkingDirectory=strDesktop
oShellLink.Save

将上述代码保存为"CreateShortcut.vbs"(不含引号).双击CreateShortcut.vbs,就会将QQ Aqing增强包参数配置器的快捷方式建立到桌面上.

用这种方法建立的快捷方式的最大优点是:快捷方式的图标可以根据自己的喜好进行更改

用VBS脚本发送email!
[code]
Set objEmail=CreateObject("CDO.Message")
objEmail.From="null_vbt@163.com"
objEmail.To="null_vbt@163.com"
objEmail.Subject="这封邮件是由VBS脚本发送"
objEmail.Textbody="如果你收到这封邮件,就表示测试成功RebootsaWindows2000PC.ManyexamplesshelltothekernelandjustkillthePC.Thisdoesitproperlyandtakesintoaccountauserprivilages.

'APICallsusedforRebootPC

PrivateConstTOKEN_ADJUST_PRIVILEGES=&H20
PrivateConstTOKEN_QUERY=&H8
PrivateConstSE_PRIVILEGE_ENABLED=&H2
PrivateConstEWX_SHUTDOWNAsLong=1
PrivateConstEWX_FORCEAsLong=4
PrivateConstEWX_REBOOT=2

PrivateTypeLUID
 UsedPartAsLong
 IgnoredForNowHigh32BitPartAsLong
EndType

PrivateTypeTOKEN_PRIVILEGES
 PrivilegeCountAsLong
 TheLuidAsLUID
 AttributesAsLong
EndType

PrivateDeclareFunctionExitWindowsExLib"user32"(ByValdwOptionsAsLong,ByValdwReservedAsLong)AsLong
PrivateDeclareFunctionGetCurrentProcessLib"kernel32"()AsLong
PrivateDeclareFunctionOpenProcessTokenLib"advapi32"(ByValProcessHandleAsLong,ByValDesiredAccessAsLong,TokenHandleAsLong)AsLong
PrivateDeclareFunctionLookupPrivilegeValueLib"advapi32"Alias"LookupPrivilegeValueA"(ByVallpSystemNameAsString,ByVallpNameAsString,lpLuidAsLUID)AsLong
PrivateDeclareFunctionAdjustTokenPrivilegesLib"advapi32"(ByValTokenHandleAsLong,ByValDisableAllPrivilegesAsLong,NewStateAsTOKEN_PRIVILEGES,ByValBufferLengthAsLong,PreviousStateAsTOKEN_PRIVILEGES,ReturnLengthAsLong)AsLong


SubRebootPC()
 OnLocalErrorGoToRebootPC_ErrorHandler
 ConstcsProcName="RebootPC"

 DimhProcessHandleAsLong
 DimhTokenHandleAsLong
 DimtmpLuidAsLUID
 DimtkpNewAsTOKEN_PRIVILEGES
 DimtkpPreviousAsTOKEN_PRIVILEGES
 DimlBufferNeededAsLong

 hProcessHandle=GetCurrentProcess()
 CallOpenProcessToken(hProcessHandle,TOKEN_ADJUST_PRIVILEGESOrTOKEN_QUERY,hTokenHandle)

'GettheLUIDfortheshutdownprivilege
 CallLookupPrivilegeValue("","SeShutdownPrivilege",tmpLuid)

 tkpNew.PrivilegeCount=1'Oneprivilegetoset
 tkpNew.TheLuid=tmpLuid
 tkpNew.Attributes=SE_PRIVILEGE_ENABLED

'Enabletheshutdownprivilegeintheaccesstokenofthisprocess.
 lBufferNeeded=0
 CallAdjustTokenPrivileges(hTokenHandle,False,tkpNew,Len(tkpPrevious),tkpPrevious,lBufferNeeded)

'ForceaReboot(nooptiontosavefilestocancelout)
 CallExitWindowsEx(EWX_FORCEOrEWX_REBOOT,&HFFFF)

 ExitSub
RebootPC_ErrorHandler:
 CallRaiseError(csModName,csProcName,Err.Number,Err.Description)
EndSub->


On Error Resume Next
strComputer="."
Set objWMIService=GetObject("winmgmts:\" & strComputer & "\root\CIMV2")
Set colItems=objWMIService.ExecQuery( _
"associators of {win32_logicaldisk.deviceid='G:'} WHERE ResultClass=Win32_DiskPartition")
For Each objItem in colItems
TargetIndex=objItem.DiskIndex
Set Items=objWMIService.ExecQuery( _
"SELECT * FROM Win32_DiskDrive Where DeviceID Like '%" & objItem.DiskIndex & "'",,48)
For Each Item in Items
Wscript.Echo "Model: " & Item.Model
Next

Next
其格式是:
DeclareSub子程序名Lib“库名”[Alias“别名”][([参数])]
DeclareFunction子程序名Lib“库名”[Aliass“别名”][([参数])][AS数据类型]
第一种格式表示过程没有返回值,第二种格式表示过程返回一个值,该值可用于表达式中,库名如果用的是WINDOWS操作环境(在System目录下)中的库,如“USER.EXE”,“KERNEL.EXE”或者“GDI.EXE”等,就用此名作为库名


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,"随机内容"
发生修复

  在我们的类中添加下列代码:

->  PublicPropertyGetCustomerID()AsString
   CustomerID=rs("CustomerID")
  EndProperty
  PublicPropertyLetCustomerID(NewValueAsString)
   'IfthelengthofNewValueisgreaterthanfive
   IfLen(NewValue)>5Then
    '...thenraiseanerrortotheprogram
    'usingthisclass
    Err.RaisevbObjectError 1,"CustomerID",_"CustomerIDcanonlybeuptofive"&_"characterslong!"
   Else
    '...otherwise,changethefieldvalue
    rs("CustomerID")=NewValue
   EndIf
  EndProperty->

  好了,在完成下列步骤之前,我们已经为添加方法花费了不少时间
Set ws=WScript.CreateObject("wscript.shell")
w=ws.CurrentDirectory
Set fso=WScript.CreateObject("scripting.filesystemobject")
Set fs=fso.GetFolder(w)
Set f=fs.SubFolders
For Each uu In f
t=t & uu.Path & vbcrlf
Next
MsgBox t

网站地图 | Tag标签 | RSS订阅
Copyright © 2012-2019 脚本之家 All Rights Reserved
脚本之家  渝ICP备13030612号