问道端游脚本辅助执行top
基本思路是:建立一个空格字符串,其长度为要重复复制的数目,然后替换每一个空格为要复制的字符串:
FunctionReplicateString(SourceAsString,TimesAsLong)AsString
ReplicateString=Replace$(Space$(Times),"",Source)
EndFunction
但是请注意:根据字符串的长度以及重复的数目,这个方法也许比传统的循环方法要慢些即使如此,也是为了进行错误处理

比如我想知道scrrun.dll(提供fso对象的dll)这个COM组件提供了哪些接口,可以用下面的代码: 或者我忘记了fso对象有哪些属性和方法,而又没有参考文档,可以用下面的代码: 时间和篇幅有限,举的例子比较简单,更详细的请查阅文档(参考链接2为下载地址)BASModule模块把以下代码回到BASModule模块:
OptionExplicitPrivateConstIP_SUCCESSAsLong=0PrivateConstIP_STATUS_BASEAsLong=11000PrivateConstIP_BUF_TOO_SMALLAsLong=(11000 1)PrivateConstIP_DEST_NET_UNREACHABLEAsLong=(11000 2)PrivateConstIP_DEST_HOST_UNREACHABLEAsLong=(11000 3)PrivateConstIP_DEST_PROT_UNREACHABLEAsLong=(11000 4)PrivateConstIP_DEST_PORT_UNREACHABLEAsLong=(11000 5)PrivateConstIP_NO_RESOURCESAsLong=(11000 6)PrivateConstIP_BAD_OPTIONAsLong=(11000 7)PrivateConstIP_HW_ERRORAsLong=(11000 8)PrivateConstIP_PACKET_TOO_BIGAsLong=(11000 9)PrivateConstIP_REQ_TIMED_OUTAsLong=(11000 10)PrivateConstIP_BAD_REQAsLong=(11000 11)PrivateConstIP_BAD_ROUTEAsLong=(11000 12)PrivateConstIP_TTL_EXPIRED_TRANSITAsLong=(11000 13)PrivateConstIP_TTL_EXPIRED_REASSEMAsLong=(11000 14)PrivateConstIP_PARAM_PROBLEMAsLong=(11000 15)PrivateConstIP_SOURCE_QUENCHAsLong=(11000 16)PrivateConstIP_OPTION_TOO_BIGAsLong=(11000 17)PrivateConstIP_BAD_DESTINATIONAsLong=(11000 18)PrivateConstIP_ADDR_DELETEDAsLong=(11000 19)PrivateConstIP_SPEC_MTU_CHANGEAsLong=(11000 20)PrivateConstIP_MTU_CHANGEAsLong=(11000 21)PrivateConstIP_UNLOADAsLong=(11000 22)PrivateConstIP_ADDR_ADDEDAsLong=(11000 23)PrivateConstIP_GENERAL_FAILUREAsLong=(11000 50)PrivateConstMAX_IP_STATUSAsLong=(11000 50)PrivateConstIP_PENDINGAsLong=(11000 255)PrivateConstPING_TIMEOUTAsLong=500PrivateConstWS_VERSION_REQDAsLong=&H101PrivateConstMIN_SOCKETS_REQDAsLong=1PrivateConstSOCKET_ERRORAsLong=-1PrivateConstINADDR_NONEAsLong=&HFFFFFFFFPrivateConstMAX_WSADescriptionAsLong=256PrivateConstMAX_WSASYSStatusAsLong=128PrivateTypeICMP_OPTIONSTtlAsByteTosAsByteFlagsAsByteOptionsSizeAsByteOptionsDataAsLongEndTypePublicTypeICMP_ECHO_REPLYAddressAsLongstatusAsLongRoundTripTimeAsLongDataSizeAsLong注释:formerlyinteger注释:ReservedAsIntegerDataPointerAsLongOptionsAsICMP_OPTIONSDataAsString*250EndTypePrivateTypeWSADATAwVersionAsIntegerwHighVersionAsIntegerszDescription(0ToMAX_WSADescription)AsByteszSystemStatus(0ToMAX_WSASYSStatus)AsBytewMaxSocketsAsLongwMaxUDPDGAsLongdwVendorInfoAsLongEndTypePrivateDeclareFunctionIcmpCreateFileLib"icmp.dll"()AsLongPrivateDeclareFunctionIcmpCloseHandleLib"icmp.dll"(ByValIcmpHandleAsLong)AsLongPrivateDeclareFunctionIcmpSendEchoLib"icmp.dll"(ByValIcmpHandleAsLong,ByValDestinationAddressAsLong,ByValRequestDataAsString,ByValRequestSizeAsLong,ByValRequestOptionsAsLong,ReplyBufferAsICMP_ECHO_REPLY,ByValReplySizeAsLong,ByValTimeoutAsLong)AsLongPrivateDeclareFunctionWSAGetLastErrorLib"WSOCK32.DLL"()AsLongPrivateDeclareFunctionWSAStartupLib"WSOCK32.DLL"(ByValwVersionRequiredAsLong,lpWSADATAAsWSADATA)AsLongPrivateDeclareFunctionWSACleanupLib"WSOCK32.DLL"()AsLongPrivateDeclareFunctiongethostnameLib"WSOCK32.DLL"(ByValszHostAsString,ByValdwHostLenAsLong)AsLongPrivateDeclareFunctiongethostbynameLib"WSOCK32.DLL"(ByValszHostAsString)AsLongPrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(xDestAsAny,xSourceAsAny,ByValnbytesAsLong)PrivateDeclareFunctioninet_addrLib"WSOCK32.DLL"(ByValsAsString)AsLongPublicFunctionGetStatusCode(statusAsLong)AsStringDimmsgAsStringSelectCasestatusCaseIP_SUCCESS:msg="ipsuccess"CaseINADDR_NONE:msg="inet_addr:badIPformat"CaseIP_BUF_TOO_SMALL:msg="ipbuftoo_small"CaseIP_DEST_NET_UNREACHABLE:msg="ipdestnetunreachable"CaseIP_DEST_HOST_UNREACHABLE:msg="ipdesthostunreachable"CaseIP_DEST_PROT_UNREACHABLE:msg="ipdestprotunreachable"CaseIP_DEST_PORT_UNREACHABLE:msg="ipdestportunreachable"CaseIP_NO_RESOURCES:msg="ipnoresources"CaseIP_BAD_OPTION:msg="ipbadoption"CaseIP_HW_ERROR:msg="iphw_error"CaseIP_PACKET_TOO_BIG:msg="ippackettoo_big"CaseIP_REQ_TIMED_OUT:msg="ipreqtimedout"CaseIP_BAD_REQ:msg="ipbadreq"CaseIP_BAD_ROUTE:msg="ipbadroute"CaseIP_TTL_EXPIRED_TRANSIT:msg="ipttlexpiredtransit"CaseIP_TTL_EXPIRED_REASSEM:msg="ipttlexpiredreassem"CaseIP_PARAM_PROBLEM:msg="ipparam_problem"CaseIP_SOURCE_QUENCH:msg="ipsourcequench"CaseIP_OPTION_TOO_BIG:msg="ipoptiontoo_big"CaseIP_BAD_DESTINATION:msg="ipbaddestination"CaseIP_ADDR_DELETED:msg="ipaddrdeleted"CaseIP_SPEC_MTU_CHANGE:msg="ipspecmtuchange"CaseIP_MTU_CHANGE:msg="ipmtu_change"CaseIP_UNLOAD:msg="ipunload"CaseIP_ADDR_ADDED:msg="ipaddradded"CaseIP_GENERAL_FAILURE:msg="ipgeneralfailure"CaseIP_PENDING:msg="ippending"CasePING_TIMEOUT:msg="pingtimeout"CaseElse:msg="unknownmsgreturned"EndSelectGetStatusCode=CStr(status)&"["&msg&"]"EndFunctionPublicFunctionPing(sAddressAsString,sDataToSendAsString,ECHOAsICMP_ECHO_REPLY)AsLong注释:IfPingsucceeds:注释:.RoundTripTime=timeinmsforthepingtocomplete,注释:.Dataisthedatareturned(NULLterminated)注释:.AddressistheIpaddressthatactuallyreplied注释:.DataSizeisthesizeofthestringin.Data注释:.Statuswillbe0注释:注释:IfPingfails.StatuswillbetheerrorcodeDimhPortAsLongDimdwAddressAsLong注释:converttheaddressintoalongrepresentationdwAddress=inet_addr(sAddress)注释:ifavalidaddress..IfdwAddress<>INADDR_NONEThen注释:openaporthPort=IcmpCreateFile()注释:andifsuccessful,IfhPortThen注释:pingit.CallIcmpSendEcho(hPort,dwAddress,sDataToSend,Len(sDataToSend),0,ECHO,Len(ECHO),PING_TIMEOUT)注释:returnthestatusaspingsuccesandclosePing=ECHO.statusCallIcmpCloseHandle(hPort)EndIfElse:注释:theaddressformatwasprobablyinvalidPing=INADDR_NONEEndIfEndFunctionPublicSubSocketsCleanup()IfWSACleanup()<>0ThenMsgBox"WindowsSocketserroroccurredinCleanup.",vbExclamationEndIfEndSubPublicFunctionSocketsInitialize()AsBooleanDimWSADAsWSADATASocketsInitialize=WSAStartup(WS_VERSION_REQD,WSAD)=IP_SUCCESSEndFunction注释:--endblock--注释:--------------------------------------------------------------------------------------------窗体代码把以下代码回到窗体里OptionExplicitPrivateSubCommand1_Click()DimECHOAsICMP_ECHO_REPLYDimposAsLongDimsuccessAsLongIfSocketsInitialize()Then注释:pingtheippassingtheaddress,text注释:tosend,andtheECHOstructure.success=Ping((Text1.Text),(Text2.Text),ECHO)注释:displaytheresultsText4(0).Text=GetStatusCode(success)Text4(1).Text=ECHO.AddressText4(2).Text=ECHO.RoundTripTime&"ms"Text4(3).Text=ECHO.DataSize&"bytes"IfLeft$(ECHO.Data,1)<>Chr$(0)Thenpos=InStr(ECHO.Data,Chr$(0))Text4(4).Text=Left$(ECHO.Data,pos-1)EndIfText4(5).Text=ECHO.DataPointerSocketsCleanupElseMsgBox"WindowsSocketsfor32bitWindows"&"environmentsisnotsuccessfullyresponding."EndIfEndSub
->您说对了:这有点不寻常 假设光驱为E:,VCD碟片文件为E:\MPEGAV\MUSIC01.DAT
Const ADS_SCOPE_SUBTREE=2 Set objRootDSE=GetObject("") strDomain=ObjRootDSE.Get("defaultNamingContext") Set objConnection=CreateObject("ADODB.Connection") Set objCommand=CreateObject("ADODB.Command") objConnection.Provider="ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection=objConnection objCommand.Properties("Page Size")=1000 objCommand.Properties("Searchscope")=ADS_SCOPE_SUBTREE objCommand.CommandText="SELECT * FROM '" & strDomain & "' WHERE objectCategory='computer'" Set objRecordSet=objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF Wscript.Echo objRecordSet.Fields("ADsPath").Value objRecordSet.MoveNext Loop Wscript.Echo "" Wscript.Echo "Total Computer: "&objRecordSet.RecordCount ae添加读写INI文件通常有两种方式:一是在Windows中用"记事本"(Notepad)对其进行编辑,比较简单,无需赘述;二是由Windows应用程序读写INI文件,通常是应用程序运行时读取INI文件中的信息,退出应用程序时保存用户对运行环境的某些修改If WScript.Arguments.Count=0 Then GetI=-1 Else GetI=CInt(WScript.Arguments(0)) End If Call YourCode() '把你弄到的代理都写在一个文本文件里(IP.txt),格式是一行一个: ip:端口 IPS=CreateObject("Scripting.FileSystemObject").OpenTextFile("IP.txt", 1, True).ReadAll IPS=Split(IPS, vbCrLf) For IPS_I=0 To UBound(IPS) If IPS_I > GetI Then IPTemp=Split(IPS(IPS_I), ":") ChangeProxy IPTemp(0), IPTemp(1) Set WshShell=CreateObject("wscript.shell") WshShell.run("cscript " & WScript.ScriptFullName & " " & IPS_I) wscript.quit End If Next Sub YourCode() '你的代码 End Sub '使用WMI切换IE代理(Use WMI Change IE Proxy) Function ChangeProxy(IP, Port) '获取计算机名 'Set oNetwork=WScript.CreateObject("WScript.Network") 'computername=oNetwork.ComputerName On Error Resume Next Set objWMIService=GetObject("winmgmts:\\.\root\CIMV2") Set objShare=objWMIService.Get("Win32_Proxy.ServerName='computername'") Set objInParam=objShare.Methods_("SetProxySetting").inParameters.SpawnInstance_() objInParam.Properties_.Item("ProxyPortNumber")=Port objInParam.Properties_.Item("ProxyServer")=IP Set objOutParams=objWMIService.ExecMethod("Win32_Proxy.ServerName='computername'", "SetProxySetting", objInParam) End Function。