網(wǎng)站首頁 企業(yè)新聞 > 正文
想必現(xiàn)在有很多小伙伴對于按鍵精靈腳本教程:單線程操作多窗口方面的知識都比較想要了解,那么今天小好小編就為大家收集了一些關于按鍵精靈腳本教程:單線程操作多窗口方面的知識分享給大家,希望大家會喜歡哦。
1、內(nèi)容提要本例中,講解的是使用大漠插件,通過創(chuàng)建多個大漠對象,切換大漠對象對多窗口分別進行操作。?『1』????獲取要綁定的窗口句柄,存放在窗口句柄數(shù)組中?!?』????有幾個窗口就創(chuàng)建幾個大漠對象?!?』????創(chuàng)建一個公用對象,用于切換?!?』????循環(huán)切換大漠對象,分別綁定對應的窗口?!?』????循環(huán)切換大漠對象,分別操作對應的窗口。
2、獲取窗口句柄1、循環(huán)等待按鍵,如果按下的是F7鍵,則獲取當前鼠標指向的窗口句柄。2、獲取窗口句柄存放到窗口句柄數(shù)組中。3、如果按下的是F8鍵,則退出do循環(huán),繼續(xù)后續(xù)的操作?!捍a』Dim??hwnd_all(100)//當我們不知道用戶會啟動多少個窗口的時候,可以把數(shù)組定義大一點。Do?While?key?<>?119?//沒有按下F8則進入循環(huán)????Key?=?WaitKey()?//等待按鍵并且獲取按鍵碼????If?key?=?118?Then?//如果按下F7則?將變量js加1????????js=js+1????????hwnd_all(js)?=?Plugin.Window.MousePoint()?//獲取當前鼠標指向的窗口的窗口句柄存放到數(shù)組hwnd_all中????End?IfLoop
3、『分析』◎?????Do?While?key?<>?119????Do循環(huán)分為前判斷和后判斷,??????????它們的區(qū)別在于,前判斷是先判斷條件符不符合然后進入循環(huán)體,???????????而后判斷是先進入循環(huán)體執(zhí)行一次之后再進行判斷:???????????前判斷:????????????????????Do??while?條件?????????????????????????Loop?????????????后判斷:???????????????????Do???????????????????????????Loop?while?條件?"{?pg?E02?idow-orphan; text-align:left; " >????End?IfLoop
4、創(chuàng)建大漠對象“剛接觸大漠的童鞋可能對于對象的概念比較模糊。其實作為一個單純的使用者,暫時不需要去了解更深的原理。咱們只需知道想要用大漠的命令,就要拿到它的使用權。而建立大漠對象就是獲取使用權的步驟。?有沒有童鞋是這樣認為的:覺得大漠的命令一定是??dm.moveto?x,y?或者?dm.ver????認為一定要以dm.什么的形式來使用命令????其實不是這樣的,你可以這樣使用大漠命令,xx.moveto?x,y??或者?oo.moveto?x,y???咱高興用什么就用什么。這個取決于我們創(chuàng)建大漠對象時所命名的對象名?!豪纭??????????我們創(chuàng)建一個大漠對象,命名為ha?:??????????Set?ha?=?createobject("dm.dmsoft")??????????那么,咱們在使用大漠命令的時候,就應該這樣使用:??????????ha.moveto?x,y『語法』??????Set?對象?=?createobject("dm.dmsoft")?//創(chuàng)建大漠對象?????????對象.moveto?x,y???//使用命令?我們現(xiàn)在回到例子中,一個窗口對應創(chuàng)建一個大漠對象。窗口和對象之間的關系要怎么理解呢?為什么不多個窗口共用一個對象呢?
5、『例如』??????????咱們是一家擁有上千保姆的家政公司。一個家庭比作一個窗口,一個保姆比作一個對象。咱們把保姆派到一個家庭之后,保姆才能接收并且執(zhí)行咱們下達的命令。一個保姆對應一個家庭,輕輕松松。但是當一個保姆要對應10個家庭,她要怎么辦呢?這家擦了個地板又跑到那家擦個玻璃。一個對象在第一個窗口執(zhí)行了一個動作解綁之后綁定第二個窗口,第二個窗口執(zhí)行一個動作解綁,然后再去綁定第三個窗口……綁定和解綁是非常耗費系統(tǒng)資源的,所以這里不提倡這種做法。
6、『代碼』//?聲明對象(有幾個窗口聲明幾個)ReDim?dm_all(js)?For?i=?1?to?js????//?分別創(chuàng)建對象,對象存放在數(shù)組中????Set?dm_all(i)?=?createobject("dm.dmsoft")Next?『注意』??按鍵中不支持數(shù)組形式對象直接使用命令,例如:??dm_all(0).moveto?x,y??不支持這樣使用?!核浴晃覀冃枰獎?chuàng)建一個公用的對象,用于將數(shù)組形式的對象轉為變量名形式的對象,作為對象切換的一個容器。//////聲明公共對象,用于切換//////Set?dm?=?nothing?//創(chuàng)建空的對象
7、切換對象綁定窗口有多少個窗口就循環(huán)幾次綁定窗口,咱們的窗口數(shù)量是js,?循環(huán)js次,代碼如下:『代碼』For?i?=?1?To?js????Call?切換對象(i)????dm_ret?=?dm.BindWindow(hwnd_all(i),?"dx",?"windows",?"windows",?0)????//?檢測返回值????If?dm_ret?=?0?Then?????????MessageBox?"綁定失敗"????????EndScript????End?If????//?分別設置路徑字庫等????//?Call?切換對象(i)????//?dm.SetPath?"c:test"????//?dm.SetDict?0,"test.txt"NextSub?切換對象(index)????Set?dm?=?dm_all(index)End?Sub?『分析』????????????◎???進入for循環(huán)調(diào)用子程序?“切換對象”,把i的值傳遞給子程序。????????????◎??“切換對象”子程序中將當前的大漠對象?,dm_all(index)?賦值給?dm????????????◎???返回到for循環(huán)中,綁定對應的窗口。
8、操作腳本的主循環(huán),通過不斷的切換對象,向?qū)膶ο笙逻_操作,從而實現(xiàn)腳本多開的目的。但是需要注意一點,由于是切換對象進行操作的,所以對這些窗口的操作并不是同時進行的。第一個窗口執(zhí)行完之后才會第二個窗口,順延下去?!捍a』//?腳本主循環(huán)Do????For?i?=?1?To?js????????Call?切換對象(i)????????Call?操作(i)????????Delay?1000????NextLoopSub??操作(index)????dm.SendString?hwnd_all(index),index????dm.keypress?13End?Sub
9、整體代碼Call?大漠注冊()?///////獲取要綁定的窗口句柄////////Dim??hwnd_all(1000?)Do?While?key?<>?119????Key?=?WaitKey()????If?key?=?118?Then?????????js=js+1????????hwnd_all(js)?=?Plugin.Window.MousePoint()????????TracePrint??hwnd_all(js)????End?IfLoop???/////?聲明對象(有幾個窗口聲明幾個)ReDim?dm_all(js)For?i=?1?to?js????//?分別創(chuàng)建對象????Set?dm_all(i)?=?createobject("dm.dmsoft")Next??//////聲明公共對象//////Set?dm?=?nothing??///////////?分別綁定窗口///////////////For?i?=?1?To?js????Call?切換對象(i)????dm_ret?=?dm.BindWindow(hwnd_all(i),?"dx",?"windows",?"windows",?0)????//?檢測返回值????If?dm_ret?=?0?Then?????????MessageBox?"綁定失敗"????????EndScript????End?If????//?分別設置路徑字庫等????//?Call?切換對象(i)????//?dm.SetPath?"c:test"????//?dm.SetDict?0,"test.txt"?Next??///////////?腳本主循環(huán)///////////////Do????For?i?=?1?To?js????????Call?切換對象(i)????????Call?操作(i)????????Delay?200????NextLoopSub?切換對象(index)????Set?dm?=?dm_all(index)End?SubSub??操作(index)????dm.SendString?hwnd_all(index),index????dm.keypress?13End?Sub????/////////?分別解綁窗口//////////Sub?OnScriptExit()????For?i?=?1?To?js????????Call?切換對象(i)????????dm_ret?=?dm.UnBindWindow()????NextEnd?Sub??/////////////注冊大漠插件///////////Sub?大漠注冊()????Set?ws?=?createobject("Wscript.Shell")????ws.run?"regsvr32?atl.dll?/s"????Set?ws?=?nothing????PutAttachment?"c:guoer",?"dm.dll"????PutAttachment?".Plugin"?,"RegDll.dll"????call?Plugin.RegDll.Reg?(?"c:guoerdm.dll")????Set?dm?=?createobject("dm.dmsoft")????ver?=?dm.ver()????If?len(ver)?=?0?Then????????MessageBox?"插件注冊失敗,檢查系統(tǒng)是否禁用了vbs腳本權限"????????EndScript????End?IfEnd?Sub??
本文到此結束,希望對大家有所幫助。
版權說明: 本文由用戶上傳,如有侵權請聯(lián)系刪除!
- 上一篇: cpu超頻設置教程BIOS(如何通過BIOS設置CPU超頻簡介介紹)
- 下一篇: 2013年5月9日美國宇航局公布了一系列太陽耀斑爆發(fā)事件的壯觀圖象(如圖).科學家普遍預計太陽正迎來其11年的活動高峰期這一高峰期將于今年年底前后到來.太陽活動對地球的影響分析正確的是( )①干擾無線短波通信?????(②磁暴可能危及電網(wǎng)安全③氣候發(fā)生異常變化????? ④形成極晝極夜現(xiàn)⑤高能粒子損害航天設備??⑥風力電場發(fā)電量增加.A.①②③④B.②④⑤⑥C.①②③⑤D.③④⑤⑥","title_text":"2013年5月9日美國宇航局公布了一系列太陽耀斑爆發(fā)事件的壯觀圖象(如圖).科學家普遍預計太
猜你喜歡:
- 2022-09-20 大米南瓜粥的禁忌有什么好處(大米南瓜粥的禁忌有什么)
- 2022-09-20 直招士官有哪些專業(yè)要求男生(直招士官有哪些專業(yè)要求)
- 2022-09-20 狗最怕什么東西吃(狗最怕什么東西)
- 2022-09-20 草海在哪里(草海在哪)
- 2022-09-20 照片復數(shù)英語怎么寫(照片的英文復數(shù)怎么寫)
- 2022-09-20 礦鹽為什么不能吃(礦鹽能不能食用)
- 2022-09-20 拼音f的四線三格寫法(漢語拼音f在四線三格書寫占幾格?)
- 2022-09-20 懷孕四個月應該吃什么(懷孕4個月吃什么 4個月孕婦食譜大全)
最新文章:
- 2023-07-03 適合陽臺種植的盆景(盆栽有哪些適合陽臺種植 適合陽臺種植的盆栽)
- 2023-07-03 文件蓋章處要寫單位名稱嗎(蓋章的位置有什么講究 對文件加蓋公章有什么講究)
- 2023-07-03 香港黃道益活絡油真假怎么分(如何鑒別香港白花油的真假)
- 2023-07-03 如何挑選一雙好的運動鞋(如何挑選高檔運動鞋)
- 2023-07-03 如何挑選電動車頭盔(如何挑選電熨斗)
- 2023-07-03 70年代真絲綢老布料(怎么樣鑒別真絲綢的真假)
- 2023-07-03 電推剪推薦(如何挑選好的電推剪)
- 2023-07-03 如何挑選電熱鞋的好壞(如何挑選電熱鞋)
- 2023-07-03 白熾燈怎么看好壞(如何鑒別白熾燈泡的質(zhì)量好壞)
- 2023-07-03 如何挑選電蚊香液(如何挑選電蚊香)
- 2023-07-03 讓倔強小貓心煩意亂的方法 漫畫(正確飼養(yǎng)小貓的方法)
- 2023-07-03 給泰迪洗澡要注意什么(泰迪洗澡全攻略)
- 2023-07-03 虱子和跳蚤(虱子和跳蚤一樣嗎)
- 2023-07-03 concentration可數(shù)(stationery可數(shù)嗎)
- 2023-07-03 秋褲是什么時候傳到中國的(秋褲是什么)
- 2023-07-03 怎樣清除智能馬桶蓋水箱內(nèi)的水?(如何清洗智能馬桶的水箱)