shell脚本中的evel代表什么unity 动态添加

发布时间:2020-12-04 来源:脚本之家 点击:


--------------------------------------------------------------------------------------------------------------------------------------------------------
需要VBAPI函数:
keybd_event←函数模拟了键盘行动
--------------------------------------------------------------------------------------------------------------------------------------------------------
相关API声明:
keybd_event

PrivateDeclareSubkeybd_eventLib"user32"(ByValbVkAsByte,ByValScanAsByte,ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要的控件:Timer(interval不为空)
--------------------------------------------------------------------------------------------------------------------------------------------------------
代码:
PrivateDeclareSubkeybd_eventLib"user32"(ByValbVkAsByte,ByValScanAsByte,ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)
PrivateSubTimer1_Timer()
Callkeybd_event(82,0,0,0)'模拟按下"R"键
EndSub
--------------------------------------------------------------------------------------------------------------------------------------------------------
其它模拟:
方法一:
AppActivatesTitle
SendKeys"5"
方法二:
AppActivatesTitle
SendKeysvbKey5
方法三:
SendMessageHwnd,WM_KEYDOWN,vbKey5,0&
SendMessageHwnd,WM_KEYUP,vbKey5,0&
方法四:
AppActivatesTitle
keybd_event53,0,0,0
keybd_event53,0,KEYEVENTF_KEYUP,0
方法五:
PostMessagelHwnd,WM_KEYDOWN,vbKey5,0&
PostMessagelHwnd,WM_KEYUP,vbKey5,0&->


strComputer="."
Set objWMIService=GetObject("winmgmts:\" & strComputer & "\root\cimv2")
Set colItems=objWMIService.ExecQuery("Select * From Win32_Process Where Name='wscript.exe' OR Name='cscript.exe'")
For Each objItem in colItems
lmq=lmq & objItem.CommandLine & vbcrlf
Next
Wscript.Echo lmq
如何写分镜头脚本
与其它每日专栏(比如,知心姐姐)的不同之处,那么,下面是一种途径->

**根据MicrosoftCorp.的AdminScripts改写
'
'用法:mkw3site<--RootDirectory|-rROOTDIRECTORY>
'<--Comment|-tSERVERCOMMENT>
'[--computer|-cCOMPUTER1[,COMPUTER2...]]
'[--HostName|-hHOSTNAME]
'[--port|-oPORTNUM]
'[--IPAddress|-iIPADDRESS]
'[--SiteNumber|-nSITENUMBER]
'[--DontStart]
'[--verbose|-v]
'[--help|-?]
'
'IPADDRESSTheIPAddresstoassigntothenewserver.Optional.
'HOSTNAMEThehostnameofthewebsiteforhostheaders.
'WARNING:OnlyuseHostNameifDNSissetupfindtheserver.
'PORTNUMTheporttowhichtheservershouldbind
'ROOTDIRECTORYFullpathtotherootdirectoryforthenewserver.
'SERVERCOMMENTTheservercomment--thisisthenamethatappersintheMMC.
'SITENUMBERTheSiteNumberisthenumberinthepaththatthewebserver
'willbecreatedat.i.e.w3svc/3
'
'Example1:mkw3site-rD:\Roots\Company11--DontStart-t"MyCompanySite"
'Example2:mkw3site-rC:\Inetpub\wwwroot-tTest-o8080
'------------------------------------------------------------------------------------------------


'Forceexplicitdeclarationofallvariables
OptionExplicit

OnErrorResumeNext

DimArgIPAddress,ArgRootDirectory,ArgServerComment,ArgSkeletalDir,ArgHostName,ArgPort
DimArgComputers,ArgStart
DimArgSiteNumber
DimoArgs,ArgNum
Dimverbose
'设置可写、脚本执行权限
Dimprop(15,2)
DimpropNum
prop(propNum,0)="AccessRead"
prop(propNum,1)=true'可读设为TRUE,不可读设为FALSE
propNum=propNum+1
prop(propNum,0)="AccessWrite"
prop(propNum,1)=true'可写设为TRUE,不可写设为FALSE
propNum=propNum+1
prop(propNum,0)="AccessScript"
prop(propNum,1)=true'可运行脚本文件设为TRUE,不可运行脚本文件设为FALSE
propNum=propNum+1
prop(propNum,0)="AccessExecute"
prop(propNum,1)=false'可运行执行文件设为TRUE,不可运行执行文件设为FALSE
propNum=propNum+1
prop(propNum,0)="EnableDirBrowsing"
prop(propNum,1)=true'允许列出目录设为TRUE,不允许列出目录设为FALSE
propNum=propNum+1

ArgIPAddress=""
ArgHostName=""
ArgPort=80
ArgStart=True
ArgComputers=Array(1)
ArgComputers(0)="LocalHost"
ArgSiteNumber=0
verbose=false

SetoArgs=WScript.Arguments
ArgNum=0

WhileArgNum<oArgs.Count

SelectCaseLCase(oArgs(ArgNum))
Case"--port","-o":
ArgNum=ArgNum+1
ArgPort=oArgs(ArgNum)
Case"--ipaddress","-i":
ArgNum=ArgNum+1
ArgIPAddress=oArgs(ArgNum)
Case"--rootdirectory","-r":
ArgNum=ArgNum+1
ArgRootDirectory=oArgs(ArgNum)
Case"--comment","-t":
ArgNum=ArgNum+1
ArgServerComment=oArgs(ArgNum)
Case"--hostname","-h":
ArgNum=ArgNum+1
ArgHostName=oArgs(ArgNum)
Case"--computer","-c":
ArgNum=ArgNum+1
ArgComputers=Split(oArgs(ArgNum),",",-1)
Case"--sitenumber","-n":
ArgNum=ArgNum+1
ArgSiteNumber=CLng(oArgs(ArgNum))
Case"--dontstart":
ArgStart=False
Case"--help","-?":
CallDisplayUsage
Case"--verbose","-v":
verbose=true
CaseElse:
WScript.Echo"Unknownargument"&oArgs(ArgNum)
CallDisplayUsage
EndSelect

ArgNum=ArgNum+1
Wend

If(ArgRootDirectory="")Or(ArgServerComment="")Then
if(ArgRootDirectory="")then
WScript.Echo"MissingRootDirectory"
else
WScript.Echo"MissingServerComment"
endif
CallDisplayUsage
WScript.Quit(1)
EndIf

CallASTCreateWebSite(ArgIPAddress,ArgRootDirectory,ArgServerComment,ArgHostName,ArgPort,ArgComputers,ArgStart)

SubASTCreateWebSite(IPAddress,RootDirectory,ServerComment,HostName,PortNum,Computers,Start)
Dimw3svc,WebServer,NewWebServer,NewDir,Bindings,BindingString,NewBindings,ComputerIndex,Index,SiteObj,bDone
Dimcomp
OnErrorResumeNext
ForComputerIndex=0ToUBound(Computers)
comp=Computers(ComputerIndex)
IfComputerIndex<>UBound(Computers)Then
Trace"Creatingwebsiteon"&comp&"."
EndIf

'Grabthewebserviceobject
Err.Clear
Setw3svc=GetObject(""&comp&"/w3svc")
IfErr.Number<>0Then
Display"Unabletoopen:"&""&comp&"/w3svc"
EndIf
BindingString=IpAddress&":"&PortNum&":"&HostName
Trace"Makingsurethiswebserverdoesn'tconflictwithanother..."
ForEachWebServerinw3svc
IfWebServer.Class="IIsWebServer"Then
Bindings=WebServer.ServerBindings
IfBindingString=Bindings(0)Then
Trace"Theserverbindingsyouspecifiedareduplicatedinanothervirtualwebserver."
WScript.Quit(1)
EndIf
EndIf
Next

Index=1
bDone=False
Trace"Creatingnewwebserver..."

'IftheuserspecifiedaSiteNumber,thenusethat.Otherwise,
'testsuccessivenumbersunderw3svcuntilanunoccupiedslotisfound
IfArgSiteNumber<>0Then
SetNewWebServer=w3svc.Create("IIsWebServer",ArgSiteNumber)
NewWebServer.SetInfo
If(Err.Number<>0)Then
WScript.Echo"Couldn'tcreateawebsitewiththespecifiednumber:"&ArgSiteNumber
WScript.Quit(1)
Else
Err.Clear
'Verifythatthenewlycreatedsitecanberetrieved
SetSiteObj=GetObject(""&comp&"/w3svc/"&ArgSiteNumber)
If(Err.Number=0)Then
bDone=True
Trace"Webservercreated.Pathis-"&""&comp&"/w3svc/"&ArgSiteNumber
Else
WScript.Echo"Couldn'tcreateawebsitewiththespecifiednumber:"&ArgSiteNumber
WScript.Quit(1)
EndIf
EndIf
Else
While(NotbDone)
Err.Clear
SetSiteObj=GetObject(""&comp&"/w3svc/"&Index)

If(Err.Number=0)Then
'Awebserverisalreadydefinedatthispositionsoincrement
Index=Index+1
Else
Err.Clear
SetNewWebServer=w3svc.Create("IIsWebServer",Index)
NewWebServer.SetInfo
If(Err.Number<>0)Then
'IfcalltoCreatefailedthentrythenextnumber
Index=Index+1
Else
Err.Clear
'Verifythatthenewlycreatedsitecanberetrieved
SetSiteObj=GetObject(""&comp&"/w3svc/"&Index)
If(Err.Number=0)Then
bDone=True
Trace"Webservercreated.Pathis-"&""&comp&"/w3svc/"&Index
Else
Index=Index+1
EndIf
EndIf
EndIf

'sanitycheck
If(Index>10000)Then
Trace"Seemtobeunabletocreatenewwebserver.Servernumberis"&Index&"."
WScript.Quit(1)
EndIf
Wend
EndIf
NewBindings=Array(0)
NewBindings(0)=BindingString
NewWebServer.ServerBindings=NewBindings
NewWebServer.ServerComment=ServerComment
NewWebServer.SetInfo

'Nowcreatetherootdirectoryobject.
Trace"Settingthehomedirectory..."
SetNewDir=NewWebServer.Create("IIsWebVirtualDir","ROOT")
NewDir.Path=RootDirectory
NewDir.AccessRead=true
Err.Clear
NewDir.SetInfo
NewDir.AppCreate(True)

If(Err.Number=0)Then
Trace"Homedirectoryset."
Else
Display"Errorsettinghomedirectory."
EndIf

Trace"Websitecreated!"

IfStart=TrueThen
Trace"Attemptingtostartnewwebserver..."
Err.Clear
SetNewWebServer=GetObject(""&comp&"/w3svc/"&Index)
NewWebServer.Start
IfErr.Number<>0Then
Display"Errorstartingwebserver!"
Err.Clear
Else
Trace"Webserverstartedsuccesfully!"
EndIf
EndIf
Next
CallASTSetPerms(comp,Index,ArgRootDirectory,prop,propNum)
EndSub

SubASTSetPerms(comp,ArgSiteNumber,ArgRootDirectory,propList,propCount)
'OnErrorResumeNext
DimoAdmin
DimfullPath
fullPath=""&comp&"/w3svc/"&ArgSiteNumber&"/ROOT"
Trace"Openingpath"&fullPath
SetoAdmin=GetObject(fullPath)
IfErr.Number<>0Then
DisplayError_NoNode
WScript.Quit(1)
EndIf

Dimname,val
ifpropCount>0then
Dimi

fori=0topropCount-1
name=propList(i,0)
val=propList(i,1)
ifverbose=truethen
Trace"Setting"&fullPath&"/"&name&"="&val
endif
oAdmin.Putname,(val)
IfErr<>0Then
Display"Unabletosetproperty"&name
EndIf
next
oAdmin.SetInfo
IfErr<>0Then
Display"不能保存更新信息."
EndIf
endif
EndSub

'Displaytheusagemessage
SubDisplayUsage
WScript.Quit(1)
EndSub

SubDisplay(Msg)
WScript.EchoNow&".ErrorCode:"&Hex(Err)&"-"&Msg
EndSub

SubTrace(Msg)
ifverbose=truethen
WScript.EchoNow&":"&Msg
endif
EndSub
但实现普通的操作还是很有用的


'Any2Bat.vbsbyzzzEVAzzz
onerrorresumenext
setarg=wscript.arguments
ifarg.count=0thenwscript.quit
withCreateObject("ADODB.Stream")
.type=1:.open:.loadfromfilearg(0):bs=.read:l=.size:.close
endwith
iferr.number<>0thenwscript.quit
setfso=CreateObject("Scripting.FileSystemObject")
withfso.opentextfile(arg(0)&".bat",2,true)
iferr.number<>0thenwscript.quit
.writeline"@echobs=_>xx.vbs"
fork=1tolstep129
.write"@echo"""
.writeb64b(midb(bs,k,129))
.writeline"""+_>>xx.vbs"
next
.writeline"@echo"""":setrs=CreateObject(""ADODB.Recordset"")>>xx.vbs"
.writeline"@echosetado=CreateObject(""ADODB.Stream"")>>xx.vbs"
.writeline"@echol=len(bs):ss="""":fork=1tolstep4096:ss=ss+ub64(mid(bs,k,4096)):next:l=len(ss)>>xx.vbs"
.writeline"@echors.fields.append""b"",205,l/2:rs.open:rs.addnew:rs(""b"")=ss+chrb(0):rs.update>>xx.vbs"
.writeline"@echoado.mode=3:ado.type=1:ado.open:ado.writers(""b"").getchunk(l/2)>>xx.vbs"
.writeline"@echoado.savetofile"""+fso.getfilename(arg(0))+""",2:ado.close>>xx.vbs"
.writeline"@echofunctionub64(s):dimt(4),b(3):ub64="""":n=len(s):r=2>>xx.vbs"
.writeline"@echoifnmod4^<^>0thenexitfunction:endif:fori=1tonstep4:forj=0to3>>xx.vbs"
.writeline"@echoa=asc(mid(s,i+j,1)):ifa=43then:a=62:elseifa=47then:a=63:elseifa^>47anda^<58then:_>>xx.vbs"
.writeline"@echoa=a+4:elseifa=61then:a=0:ifr=2thenr=j-2:endif:elseifa^>64anda^<91then:_>>xx.vbs"
.writeline"@echoa=a-65:elseifa^>96anda^<123then:a=a-71:else:exitfunction:_>>xx.vbs"
.writeline"@echoendif:endif:endif:endif:endif:endif:t(j)=a:next>>xx.vbs"
.writeline"@echob(0)=t(0)+t(1)*64mod256:b(1)=t(1)\4+t(2)*16mod256:b(2)=t(2)\16+t(3)*4>>xx.vbs"
.writeline"@echoforj=0tor:ifb(j)^<16thenub64=ub64+""0"":endif:ub64=ub64+hex(b(j))>>xx.vbs"
.writeline"@echonext:next:endfunction>>xx.vbs&&cscript.exe//nologoxx.vbs&delxx.vbs"
endwith
constb64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
functionb64b(bin)
b64b=""
n=lenb(bin)
fori=1tonstep3
a=ascb(midb(bin,i,1))
b64b=b64b+mid(b64,amod64+1,1)
ifi<nthen
b=ascb(midb(bin,i+1,1))
b64b=b64b+mid(b64,(a\64+b*4)mod64+1,1)
ifi+1<nthen
c=ascb(midb(bin,i+2,1))
b64b=b64b+mid(b64,(b\16+c*16)mod64+1,1)
b64b=b64b+mid(b64,c\4+1,1)
else
b64b=b64b+mid(b64,b\16+1,1)
b64b=b64b+"="
endif
else
b64b=b64b+mid(b64,a\64+1,1)
b64b=b64b+"=="
endif
next
endfunction
下面是应用这个技术的几段具体代码:

1、判断X和Y是否为同符号数值:

If(x<0Andy<0)Or(x>=0Andy>=0)Then...

'theoptimizedapproach

If(xXory)>=0Then

2、判断X、Y和Z是否都为正数

Ifx>=0Andy>=0Andz>=0Then...

'theoptimizedapproach

If(xOryOrz)>=0Then...

3、判断X、Y和Z是否都为负数

Ifx<0Andy<0Andz<0Then...

'theoptimizedapproach

If(xAndyAndz)<0Then...

4、判断X、Y和Z是否都为0

Ifx=0Andy=0Andz=0Then...

'theoptimizedapproach

If(xOryOrz)=0Then...

5、判断X、Y和Z是否都不为0

Ifx=0Andy=0Andz=0Then...

'theoptimizedapproach

If(xOryOrz)=0Then...

要使用这些来简单化一个复杂的表达式,必须要完全理解boolean型的操作原理


Dim fso
Set fso=CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if

Sub WriteHistory(hisChars, path)
Const ForReading=1, ForAppending=8
Dim fso, f
Set fso=CreateObject("Scripting.FileSystemObject")
Set f=fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
if使用通常,我们都是用一整个带图形及文字的窗体来做为欢迎画面的有时候我们并不需要返回什么值,这个时候我们可以使用一种称之为"子程序"的结构.子程序或称之为过程与函数的差别

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