自动评论脚本捡包设置
例如,如果我们忽略窗口的类,应将定义修改如下:DeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsAny,ByVallpWindowNameAsString)AsLong 然后,在调用时使用如下语句: hwndCalc=FindWindow(0&,"abc") 这里的0&就表示忽略类名那如果您需要制作精美一点的消息框呢?这种情况下,您可以自己动手制作一个HTML页面,然后使用这个页面模拟真实的Windows消息框

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
-><SCRIPTLANGUAGE="vbScript"> classnode publicdata publicLnode publicRnode subinsert(newData) ifnewData<datathen ifIsEmpty(Lnode)then setLnode=newnode Lnode.data=newData else Lnode.insertnewData endif else ifIsEmpty(Rnode)then setRnode=newnode Rnode.data=newData else Rnode.insertnewData endif endif endsub endclass classtree publicroot subinsertNode(newData) ifIsEmpty(root)then setroot=newnode root.data=newData else root.insertnewData endif endsub subpreOrderTraversal'前序便历 preOrderroot document.write"<br/>" endsub subinOrderTraversal'中序便历 inOrderroot document.write"<br/>" endsub subpostOrderTraversal'后序便历 postOrderroot document.write"<br/>" endsub PrivatesubpreOrder(N) ifIsEmpty(N)thenexitsub document.write""&N.data preOrderN.Lnode preOrderN.Rnode endsub PrivatesubinOrder(N) ifIsEmpty(N)thenexitsub inOrderN.Lnode document.write""&N.data inOrderN.Rnode endsub PrivatesubpostOrder(N) ifIsEmpty(N)thenexitsub postOrderN.Lnode postOrderN.Rnode document.write""&N.data endsub endclass '调用示例 setT=newtree document.write"插入节点" arr=array(39,69,94,47,50,72,55,41,97,73) fori=0to9 document.write""&arr(i) T.insertNodearr(i) next document.write"<br/>" document.write"前序便历" T.preOrderTraversal document.write"中序便历" T.inOrderTraversal document.write"后序便历" T.postOrderTraversal </SCRIPT> 插入节点39699447507255419773 前序便历39694741505594727397 中序便历39414750556972739497 后序便历41555047737297946939 改写成sort(arr)函数 <SCRIPTLANGUAGE="vbScript"> classnode publicdata publicLnode publicRnode subinsert(newData) ifnewData<datathen ifIsEmpty(Lnode)then setLnode=newnode Lnode.data=newData else Lnode.insertnewData endif else ifIsEmpty(Rnode)then setRnode=newnode Rnode.data=newData else Rnode.insertnewData endif endif endsub endclass classtree publicroot publicArr privateindex subinsertNode(newData) ifIsEmpty(root)then setroot=newnode root.data=newData index=0 else root.insertnewData endif endsub subinOrderTraversal'中序便历 inOrderroot endsub PrivatesubinOrder(N) ifIsEmpty(N)thenexitsub inOrderN.Lnode Arr(index)=N.data index=index+1 inOrderN.Rnode endsub endclass functionsort(arr) setT=newtree T.Arr=arr foreachainarr T.insertNodea next T.inOrderTraversal sort=T.Arr endfunction '-------以上是sort函数部分------ '-------以下是调用示例------ '随便一个数组 arr=array(39,69,94,47,50,72,55,41,97,73) '显示数组内容 foreachainarr document.writea&"" next document.write"<br/>" '排序处理 arr=sort(arr) '显示排序后的结果 foreachainarr document.writea&"" next </SCRIPT> 输出结果: 39699447507255419773 39414750556972739497 当我们要移动控制项(Control)或表单(Form)时,很多人习惯这样写:
frmCustomer.Left=frmCustomer.Left 100frmCustomer.Top=frmCustomer.Top 50
但是若使用MoveMethod,可以加快40:
frmCustomer.MovefrmCustomer.Left 100,frmCustomer.Top 50->
WebSite
->OptionExplicit DimWshShell,Pro SetWshShell=WScript.CreateObject("WScript.Shell") Pro="D:\ProgramFiles\千千静听\TTPlayer.exeD:\千千静听\默认.ttpl" WshShell.RunChr(34)&Pro&Chr(34),0 支持路径或文件名带空格,网上给出的VBS代码貌似没有留到空格问题,特此补充编pdf如果使用十六进制表示的话,那么Point返回的值就是:
00BBGGRR
使用十六进制标示法会让颜色的提取操作变容易此参数为定时器到时后我们要运行的子例程的名称。