PrivateSubForm_Unload(CancelAsInteger)
'关闭数据库对象并且释放内存
OnErrorResumeNext
DimwsAsWorkspace
DimdbAsDatabase
DimrsAsRecordset
ForEachwsInWorkspaces
ForEachdbInws.Databases
ForEachrsIndb.Recordsets
rs.Close
Setrs=Nothing
Next
db.Close
Setdb=Nothing
Next
ws.Close
Setws=Nothing
Next
EndSub->好多直接在服务器上将所有文件包括程序,图片等文件封装到mdb,就需要下面这个文件了
Dimrs,ws,fso,conn,stream,connStr,theFolder
Setrs=CreateObject("ADODB.RecordSet")
Setstream=CreateObject("ADODB.Stream")
Setconn=CreateObject("ADODB.Connection")
Setfso=CreateObject("Scripting.FileSystemObject")
dbname=inputbox("请输入数据库名称,数据库必须和本程序在同一目录","mc打包解压脚本")
connStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&dbname&";"
conn.OpenconnStr
rs.Open"select*from[filedata]",conn,1,1
stream.Open
stream.Type=1
OnErrorResumeNext
DoUntilrs.Eof
theFolder=Left(rs("path"),InStrRev(rs("path"),""))
Iffso.FolderExists(theFolder)=FalseThen
createFolder(theFolder)
EndIf
stream.SetEos()
stream.Writers("file")
stream.SaveToFilestr&rs("path"),2
rs.MoveNext
Loop
rs.Close
conn.Close
stream.Close
Setws=Nothing
Setrs=Nothing
Setstream=Nothing
Setconn=Nothing
Wscript.Echo"所有文件释放完毕!"
SubcreateFolder(path)
Dimi
i=Instr(path,"")
DoWhilei>0
Iffso.FolderExists(Left(path,i))=FalseThen
fso.CreateFolder(Left(path,i-1))
EndIf
IfInStr(Mid(path,i+1),"")Then
i=i+Instr(Mid(path,i+1),"")
Else
i=0
EndIf
Loop
EndSub
把如下代码内容保存为shortcut.vbs,然后创建快捷方式到sendto目录下(C:\DocumentsandSettings?ame\SendTo),改个自己想要的名字,如“创建快捷方式到我的工作目录”,即可实现创建快捷方式了,而且支持多文件,只需要把脚本中第4行中的的strFolder改成自己需要的值:
注意试图对数组中已存在的索引值使用Load语句时,VisualBasic将生成一个错误
1.文件下载(无回显)
echoiLocal=LCase(WScript.Arguments(1))>iget.vbe
echoiRemote=LCase(WScript.Arguments(0))>>iget.vbe
echoSetxPost=CreateObject("Microsoft.XMLHTTP")>>iget.vbe
echoxPost.Open"GET",iRemote,0>>iget.vbe
echoxPost.Send()>>iget.vbe
echoSetsGet=CreateObject("ADODB.Stream")>>iget.vbe
echosGet.Mode=3>>iget.vbe
echosGet.Type=1>>iget.vbe
echosGet.Open()>>iget.vbe
echosGet.Write(xPost.responseBody)>>iget.vbe
echosGet.SaveToFileiLocal,2>>iget.vbe
用法:cscripthget.vbs
2.列举进程
@echoforeachpsingetobject_>ps.vbs
@echo("winmgmts:\\.\root\cimv2:win32_process").instances_>>ps.vbs
@echowscript.echops.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next>>ps.vbs
用法:cscriptps.vbs
3.终止进程
@echoforeachpsingetobject_>pskill.vbs
@echo("winmgmts:\\.\root\cimv2:win32_process").instances_>>pskill.vbs
@echoifps.handle=wscript.arguments(0)thenwscript.echops.terminate:endif:next>>pskill.vbs
用法:cscriptpskill.vbspid
4.重启系统
@echoforeachosingetobject_>reboot.vbs
@echo("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_>>reboot.vbs
@echoos.win32shutdown(2):next>>reboot.vbs
用法:cscriptreboot.vbs
OptionExplicit
PrivateConstNCBASTAT=&H33
PrivateConstNCBNAMSZ=16
PrivateConstHEAP_ZERO_MEMORY=&H8
PrivateConstHEAP_GENERATE_EXCEPTIONS=&H4
PrivateConstNCBRESET=&H32
PrivateTypeNCB
ncb_commandAsByte'Integer
ncb_retcodeAsByte'Integer
ncb_lsnAsByte'Integer
ncb_numAsByte'Integer
ncb_bufferAsLong'String
ncb_lengthAsInteger
ncb_callnameAsString*NCBNAMSZ
ncb_nameAsString*NCBNAMSZ
ncb_rtoAsByte'Integer
ncb_stoAsByte'Integer
ncb_postAsLong
ncb_lana_numAsByte'Integer
ncb_cmd_cpltAsByte'Integer
ncb_reserve(9)AsByte'Reserved,mustbe0
ncb_eventAsLong
EndType
PrivateTypeADAPTER_STATUS
adapter_address(5)AsByte'AsString*6
rev_majorAsByte'Integer
reserved0AsByte'Integer
adapter_typeAsByte'Integer
rev_minorAsByte'Integer
durationAsInteger
frmr_recvAsInteger
frmr_xmitAsInteger
iframe_recv_errAsInteger
xmit_abortsAsInteger
xmit_successAsLong
recv_successAsLong
iframe_xmit_errAsInteger
recv_buff_unavailAsInteger
t1_timeoutsAsInteger
ti_timeoutsAsInteger
Reserved1AsLong
free_ncbsAsInteger
max_cfg_ncbsAsInteger
max_ncbsAsInteger
xmit_buf_unavailAsInteger
max_dgram_sizeAsInteger
pending_sessAsInteger
max_cfg_sessAsInteger
max_sessAsInteger
max_sess_pkt_sizeAsInteger
name_countAsInteger
EndType
PrivateTypeNAME_BUFFER
nameAsString*NCBNAMSZ
name_numAsInteger
name_flagsAsInteger
EndType
PrivateTypeASTAT
adaptAsADAPTER_STATUS
NameBuff(30)AsNAME_BUFFER
EndType
PrivateDeclareFunctionNetbiosLib"netapi32.dll"(pncbAsNCB)AsByte
PrivateDeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(hpvDestAsAny,ByValhpvSourceAsLong,ByValcbCopyAsLong)
PrivateDeclareFunctionGetProcessHeapLib"kernel32"()AsLong
PrivateDeclareFunctionHeapAllocLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,ByValdwBytesAsLong)AsLong
PrivateDeclareFunctionHeapFreeLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,lpMemAsAny)AsLong
把下面的代码放入Command1_Click的事件中:
PrivateSubCommand1_Click()
DimmyNcbAsNCB
DimbRetAsByte
myNcb.ncb_command=NCBRESET
bRet=Netbios(myNcb)
myNcb.ncb_command=NCBASTAT
myNcb.ncb_lana_num=0
myNcb.ncb_callname="* "
DimmyASTATAsASTAT,tempASTATAsASTAT
DimpASTATAsLong
myNcb.ncb_length=Len(myASTAT)
Debug.PrintErr.LastDllError
pASTAT=HeapAlloc(GetProcessHeap(),HEAP_GENERATE_EXCEPTIONSOrHEAP_ZERO_MEMORY,myNcb.ncb_length)
IfpASTAT=0Then
Debug.Print"memoryallcoationfailed!"
ExitSub
EndIf
myNcb.ncb_buffer=pASTAT
bRet=Netbios(myNcb)
Debug.PrintErr.LastDllError
CopyMemorymyASTAT,myNcb.ncb_buffer,Len(myASTAT)
MsgBoxHex(myASTAT.adapt.adapter_address(0))&""&Hex(myASTAT.adapt.adapter_address(1))_
&""&Hex(myASTAT.adapt.adapter_address(2))&""_
&Hex(myASTAT.adapt.adapter_address(3))_
&""&Hex(myASTAT.adapt.adapter_address(4))&""_
&Hex(myASTAT.adapt.adapter_address(5))
HeapFreeGetProcessHeap(),0,pASTAT
EndSub
4)按F5,运行该程序
在指定的远程计算机上运行脚本使用ADO的打开Accecc数据库方法:
DimDBAsDatabase
SetDB=OpenDatabase(FilePath,dbDriverNoPrompt,False,";PWD=你的密码")
使用Data控件打开Accecc数据库方法:
首先设置Data控件的属性Exclusive=True为独占模式
设置Connect属性为;pwd=密码
Data1.Connect=";pwd=你的密码"
修改密码:
Data1.Database.NewPassword老密码,新密码->
Server: nginx/0.8.53
文学及声明:
PublicTypeSHFILEOPSTRUCT
hwndAsLong
wFuncAsLong
pFromAsString
pToAsString
fFlagsAsInteger
fAnyOperationsAbortedAsLong
hNameMappingsAsLong
lpszProgressTitleAsLong
EndType
PublicDeclareFunctionSHFileOperationLib"shell32.dll"Alias"SHFileOperationA"(lpFileOpAsSHFILEOPSTRUCT)AsLong
PublicConstFO_DELETE=&H3
PublicConstFOF_ALLOWUNDO=&H40
代码:
DimSHopAsSHFILEOPSTRUCT
DimstrFileasstring
WithSHop
.wFunc=FO_DELETE
.pFrom=strFile Chr(0)
.fFlags=FOF_ALLOWUNDO
EndWith
SHFileOperationSHop->
TMP存储临时文件的目录(例如,c:\temp)。