應(yīng)用實(shí)戰(zhàn)
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要vbapi函數(shù):
findindo
getindothreadprocessid
openprocess
readprocessmemory
closehandle
--------------------------------------------------------------------------------------------------------------------------------------------------------
相關(guān)api聲明:
findindo
privatedeclarefunfindindolib“user32“alias“findindoa“(byvallpclassring,byvallpindoring)long
getindothreadprocessid
privatedeclarefungetindothreadprocessidlib“user32“(byvalhndlong,lpdprocessidlong)
long
openprocess
privatedeclarefunopenprocesslib“kernel32“(byvalddesiredaccesslong,byvalbihandlelong,byvaldprocessidlong)long
readprocessmemory
privatedeclarefunreadprocessmemorylib“kernel32“(byvalhprocesslong,byvallpbaseaddressany,byvallpbufferany,byvalnsizelong,lpnumberofbytesrittenlong)long
closehandle
privatedeclarefunclosehandlelib“kernel32“(byvalhobjeg)long
getcurrentprocess
privatedeclarefungetcurrentprocesslib“kernel32“l(fā)ong
--------------------------------------------------------------------------------------------------------------------------------------------------------
需要的控件:label、timer(interval不為空)、text
--------------------------------------------------------------------------------------------------------------------------------------------------------
定義函數(shù):
dimsethpinteger定義設(shè)定的體力值
dimsetmpinteger定義設(shè)定的魔法值
dimnohplong定義目前的體力值
dimnomplong定義目前的魔法值
dimmaxhplong定義角色的最高體力值
dimmaxmplong定義角色的最高魔法值
dimdizhilong定義內(nèi)存地址函數(shù)
dimhndlong儲(chǔ)存findindo函數(shù)返回的句柄
--------------------------------------------------------------------------------------------------------------------------------------------------------
代碼:
privatedeclarefunfindindolib“user32“alias“findindoa“(byvallpclassring,byvallpindoring)long
privatedeclarefungetindothreadprocessidlib“user32“(byvalhndlong,lpdprocessidlong)
long
privatedeclarefunopenprocesslib“kernel32“(byvalddesiredaccesslong,byvalbihandlelong,byvaldprocessidlong)long
privatedeclarefunreadprocessmemorylib“kernel32“(byvalhprocesslong,byvallpbaseaddressany,byvallpbufferany,byvalnsizelong,lpnumberofbytesrittenlong)long
privatedeclarefunclosehandlelib“kernel32“(byvalhobjeg)long
privatedeclarefungetcurrentprocesslib“kernel32“l(fā)ong
dimsethpinteger定義設(shè)定的體力值
dimsetmpinteger定義設(shè)定的魔法值
dimnohplong定義目前的體力值
dimnomplong定義目前的魔法值
dimmaxhplong定義角色的最高體力值
dimmaxmplong定義角色的最高魔法值
dimdizhilong定義內(nèi)存地址函數(shù)
privatefunnr(lpaddresslong)integer
聲明一些需要的變量
dimhndlong儲(chǔ)存findindo函數(shù)返回的句柄
dimpidlong儲(chǔ)存進(jìn)程標(biāo)識(shí)符(process)
dimphandlelong儲(chǔ)存進(jìn)程句柄
hnd=findindo(vbnullstring,“封神榜·網(wǎng)絡(luò)版“)
取得進(jìn)程標(biāo)識(shí)符
getindothreadprocessidhnd,pid
使用進(jìn)程標(biāo)識(shí)符取得進(jìn)程句柄
phandle=openprocess(process_all_access,false,pid)
在內(nèi)存地址中讀取數(shù)據(jù)
readprocessmemoryphandle,lpaddress,byvalvarptr(nr),4,0&
關(guān)閉進(jìn)程句柄
closehandlehprocess
endfun
ststandard_rights_required=&hf0000
stsynize=&h100000
stspecific_rights_all=&hffff
ststandard_rights_all=&h1f0000
stprocess_all_access=standard_rights_requiredsynize&hfff
stprocess_vm_operation=&h8&
stprocess_vm_read=&h10&
stprocess_vm_rite=&h20&
privatesubform_load
體力:07f68f3這里替換你所搜索到的地址魔法:07f6860同前
dizhi=07f68f=tru=fals=false
endsub
privatesubtimer1_timer
dimhndlong
hnd=findindo(vbnullstring,“封神榜·網(wǎng)絡(luò)版“)
hnd=0the=“游戲未加載“
=tru=fals=false
exitsub
endi=“游戲已加載“
sethp=獲取設(shè)定的體力值
setmp=獲取設(shè)定的魔法值
nohp=nr(dizhi)獲取當(dāng)前的體力值
nomp=nr(dizhi+12)獲取當(dāng)前的魔法值
maxhp=nr(dizhi+4)獲取角色的最高體力值
maxmp=nr(dizhi+16)獲取角色的最高魔法值
=str(nohp)+“/“+str(maxhp)顯示角色體力值狀態(tài)
=str(nomp)+“/“+str(maxmp)顯示角色魔法值狀態(tài)
the=true
els=false
erue
els=false
end
endsub
privatesubtimer2_timer
體力值小于設(shè)定值按下數(shù)字鍵1
(nohp)
sendkeys“1“
end
endsub
privatesubtimer3_timer
魔法值小于設(shè)定值按下數(shù)字鍵2
(nomp)
sendkeys“2“
end
endsub
--------------------------------------------------------------------------------------------------------------------------------------------------------