Paste_Image.png
Paste_Image.png
里面設(shè)計(jì)到界面的技術(shù),非常簡(jiǎn)單,點(diǎn)擊界面就會(huì)有幫助文檔;當(dāng)然也可以在按鍵論壇里面學(xué)習(xí),里面各種資料;
這里要談?wù)劄g覽器的操作:
在使用如下語(yǔ)句去點(diǎn)擊或其他操作去控制網(wǎng)頁(yè)時(shí),需要"元素特征字符串"
,那么如何獲取呢?
myWindow.WebBrowser.HtmlClickEx("tag:A&txt:去簽到")
使用WQM(在按鍵精靈的安裝目錄下)可以查看特征元素(但是我在win10下竟然不可以)
如果不能使用WQM的情況下怎么辦呢?
可以用chrome的檢查工具查看元素特征;
原則:
有id的用id,因?yàn)閕d足以標(biāo)識(shí)一個(gè)元素
沒(méi)有id的可以使用組合
"tag:SPAN&txt:消息"
Paste_Image.png
源碼
/*---------------大漠注冊(cè)-----------------*/
//DimEnv dm
Function registerDM
PutAttachment "C:\dm\","*.*" //所以文件都釋放到c盤(pán)大漠目錄下
Call Plugin.RegDll.Reg("C:\dm\dm.dll") //注意dm.dll
Set dm = createobject("dm.dmsoft") //創(chuàng)建一個(gè)大漠對(duì)象
dm.SetPath "C:\dm\" //設(shè)置資源路徑
End Function
/*-------------------------------------*/
DimEnv screenW //屏幕寬度
DimEnv screenH //屏幕高度
DimEnv zhidaoAD //百度知道網(wǎng)址
DimEnv wenkuAD //百度文庫(kù)網(wǎng)址
DimEnv zhidao //是否勾選簽到百度知道
Dimenv wenku //是否勾選簽到百度文庫(kù)
DimEnv zhidaoDone//知道是否加載完成
Dimenv wenkuDone//文庫(kù)是否加載完成
DimEnv zhidaoTask//知道是否加載完成
Dimenv wenkuTask//文庫(kù)是否加載完成
Dimenv flush_time//無(wú)響應(yīng)多久刷新(線程要想獲得該值忌栅,那么必須DimEnv)
Dimenv exit_time//刷新幾次無(wú)果后退出程序
Dimenv zhidaoID //知道線程ID
DimEnv wenkuID
Dimenv zhidaoTCID //知道timer線程ID
DimEnv wenkuTCID
Dimenv zhidaoTC //定時(shí)器執(zhí)行次數(shù)(TimerCount)
Dimenv wenkuTC
DimEnv info //提示信息
/*----------------前端操作------------------*/
//窗體加載
Event myWindow.Load
screenW = Plugin.Sys.GetScRX()
screenH = Plugin.Sys.GetScRY()
zhidaoAD = "http://zhidao.baidu.com/"
wenkuAD = "http://wenku.baidu.com/task/browse/daily"
zhidao = myWindow.zhidao_cb.Value
wenku = myWindow.wenku_cb.Value
zhidaoDone = false
wenkuDone = false
zhidaoTask = false
wenkuTask = false
zhidaoTC = 0
wenkuTC = 0
flush_time = myWindow.flushT_cb.ListIndex
exit_time = myWindow.exitT_cb.ListIndex
End Event
//瀏覽器加載完成
//勾選知道
Event myWindow.zhidao_cb.Click
If myWindow.zhidao_cb.Value = 1 Then
zhidao = True
Else
zhidao = false
End If
End Event
//勾選文庫(kù)
Event myWindow.wenku_cb.Click
If myWindow.wenku_cb.Value = 1 Then
wenku = True
Else
wenku = false
End If
End Event
// 刷新 時(shí)間
Event myWindow.flushT_cb.SelectChange
flush_time = myWindow.flushT_cb.ListIndex
End Event
// 時(shí)間 結(jié)束
Event myWindow.exitT_cb.SelectChange
exit_time = myWindow.exitT_cb.ListIndex
End Event
//啟動(dòng)
Event myWindow.go.Click
temp = BeginThread(operateManag)
End Event
/*--------------后臺(tái)操作---------------*/
//總操作線程
Sub operateManag
// promptFun
tmep = BeginThread(isDone)
//如果勾選了知道那么開(kāi)啟簽到知道進(jìn)程
If zhidao Then
zhidaoID = BeginThread(signZhiDao_pro)
End If
//如果勾選了知道那么開(kāi)啟簽到知道進(jìn)程
If wenku Then
wenkuID = BeginThread(signWenKu_pro)
End If
End Sub
// 設(shè)置提示
Function promptFun()
Dim prompt
If zhidao Then
prompt = prompt & "簽到百度知道 | "
End If
If wenku Then
prompt = prompt & "簽到百度文庫(kù) | "
End If
prompt = prompt & ("無(wú)響應(yīng)" & (flush_time*1000+100000) & "秒后刷新 | ")
prompt = prompt & ("刷新" & (exit_time*1000+10000) & "秒無(wú)響應(yīng)后退出 | ")
MessageBox "您的設(shè)置為: " & prompt & "若想修改待错,請(qǐng)及時(shí)按熱鍵取消操作"
End Function
//百度知道簽到(線程)
Sub signZhiDao_pro
zhidaoTCID = BeginThread(zhidaoTimer_pro)
signZhiDao
End Sub
//百度文庫(kù)簽到(線程)
Sub signWenKu_pro
//如果勾選了百度知道,那么等待其先完成
Do While True
If (zhidao and zhidaoTask) or zhidao = false Then
Exit Do
End If
Delay 1000
Loop
wenkuTCID = BeginThread(wenkuTimer_pro)
signWenKu
End Sub
// 百度知道簽到(函數(shù))
Function signZhiDao()
registerDM
//加載網(wǎng)址并等待網(wǎng)頁(yè)加載完成
myWindow.WebBrowser.Url = zhidaoAD
Do
Delay 200
Loop While not (myWindow.WebBrowser.GetReadyState = 4) //等待加載完網(wǎng)頁(yè)(4表示加載完成)
myWindow.WebBrowser.Refresh
Do
Delay 200
Loop While not (myWindow.WebBrowser.GetReadyState = 4) //等待加載完網(wǎng)頁(yè)(4表示加載完成)
myWindow.WebBrowser.HtmlClickEx("tag:A&txt:去簽到")
//彈出網(wǎng)頁(yè)所占寬度 高度
// temp = myWindow.WebBrowser.RunJS(0,"alert(document.body.scrollWidth);")
// temp = myWindow.WebBrowser.RunJS(0,"alert(document.body.scrollHeight);")
Delay 1000
Do While True
dm_ret = dm.FindPic(0, 0, screenW, screenH, "點(diǎn)擊簽到.bmp", "000000", 0.9, 0, intX, intY)
If not (dm_ret = - 1 ) Then
TracePrint "已找到"
Exit Do
Else
TracePrint "找字/圖中"
End If
Delay 2000
Loop
MoveTo intX, intY
LeftClick 1
Delay 1000
zhidaoTask = True
End Function
// 百度文庫(kù)簽到(函數(shù))
Function signWenKu()
registerDM
//加載網(wǎng)址并等待網(wǎng)頁(yè)加載完成
myWindow.WebBrowser.Url = wenkuAD
Do
Delay 200
Loop While not (myWindow.WebBrowser.GetReadyState = 4) //等待加載完網(wǎng)頁(yè)(4表示加載完成)
myWindow.WebBrowser.Refresh
Do
Delay 200
Loop While not (myWindow.WebBrowser.GetReadyState = 4) //等待加載完網(wǎng)頁(yè)(4表示加載完成)
myWindow.WebBrowser.ScrollTo 980, 1200
Delay 500
Do While True
dm_ret = dm.FindPic(0, 0, screenW, screenH, "馬上簽到.bmp", "000000", 0.9, 0, intX, intY)
If not(dm_ret=-1) Then
Exit Do
Else
TracePrint "找字/圖中"
End If
Delay 2000
Loop
MoveTo intX + 5, intY + 5
LeftClick 1
Delay 1000
wenkuTask = True
End Function
/*--------------輔助函數(shù)---------------*/
//開(kāi)啟定時(shí)器線程
Sub zhidaoTimer_pro
For (flush_time + 10)
Delay 1000
TracePrint "zhidaoTimer"
Next
If zhidaoTC >= (exit_time + 1) Then
info = "執(zhí)行超時(shí)蠢沿,請(qǐng)確定退出"
temp = BeginThread(exitSub)
Else
If zhidaoTask = false Then
StopThread (zhidaoID)
zhidaoID = BeginThread(signZhiDao_pro)
TracePrint "重來(lái)一次"
End If
End If
zhidaoTC = zhidaoTC + 1
End Sub
Sub wenkuTimer_pro
For (flush_time + 10)
Delay 1000
TracePrint "wenkuTimer"
Next
// TracePrint wenkuTC
If wenkuTC >= (exit_time + 1) Then
info = "執(zhí)行超時(shí),請(qǐng)確定退出"
temp = BeginThread(exitSub)
Else
If wenkuTask = false Then
StopThread (wenkuID)
wenkuID = BeginThread(signWenKu_pro)
TracePrint "重來(lái)一次"
End If
End If
wenkuTC = wenkuTC + 1
End Sub
//判斷是否執(zhí)行完畢線程
Sub isDone
Do While True
If wenku Then
If wenkuTask Then
If zhidao Then
If zhidaoTask Then
Exit Do
End If
Else
Exit Do
End If
End If
End If
TracePrint "wenku: " & wenku
TracePrint "wenkuTask: " & wenkuTask
Delay 3000
Loop
info = "執(zhí)行完畢,請(qǐng)確定退出"
temp = BeginThread(exitSub)
End Sub
// 開(kāi)啟退出程序線程
Sub exitSub
StopThread (zhidaoID)
StopThread (wenkuID)
StopThread (zhidaoTCID)
StopThread (wenkuTCID)
MessageBox (info)
temp = BeginThread(closeSign) //關(guān)閉百度簽到
temp = BeginThread(closeRunner) //關(guān)閉Runner(腳本執(zhí)行器)
End Sub
Sub closeSign
Call Lib.系統(tǒng).結(jié)束進(jìn)程("我的百度簽到.exe")
End Sub
Sub closeRunner
Call Lib.系統(tǒng).結(jié)束進(jìn)程("Runner.exe")
End Sub
//點(diǎn)擊進(jìn)入百度知道頁(yè)面(目的去截圖)
Event myWindow.zhidao_btn.Click
myWindow.WebBrowser.Url = zhidaoAD
End Event
//點(diǎn)擊進(jìn)入百度文庫(kù)頁(yè)面(目的去截圖)
Event myWindow.wenku_btn.Click
myWindow.WebBrowser.Url = wenkuAD
End Event