from win32com.client importgetwindowsize()獲取螢幕的長寬(暫時沒有用到)dispatch
import
osfrom random import
uniform
from time import
sleep
class
operation:
def__init__
(self, dm, hwnd):
self.dm =dm
self.hwnd =hwnd
self.dm.reg(
'vacation6c113ef949e77e259bfadb84959f6cbc
', ''
) self.dm.ver()
self.bind()
defbind(self):
self.dm.bindwindowex(self.hwnd,
"normal
", "
normal
", "
normal
", ""
, 0)
self.dm.setsimmode(0)
self.dm.enablerealkeypad(1)
self.dm.enablerealmouse(2, 20, 30)
self.dm.setkeypaddelay(
"normal
", 70)
self.dm.setclientsize(self.hwnd, 596, 446)
(self.dm.getclientsize(self.hwnd))
print('
繫結成功')
defgetwindowsize(self):
ret =self.dm.getclientsize(self.hwnd)
self.width, self.height = ret[1], ret[2]
(self.width, self.height)
def leftclick(self, xf, yf, ran_x, ran_y, delay=uniform(0.3, 0.5)):
x = xf +uniform(0, ran_x)
y = yf +uniform(0, ran_y)
self.dm.moveto(x, y)
self.dm.leftclick()
sleep(delay)
defkeypress(self, n):
self.dm.keypress(n)
defkeyup(self, n):
self.dm.keyup(n)
defkeydown(self, n):
self.dm.keydown(n)
defregsvr():
try:
dm_1 = dispatch('
dm.dmsoft')
except
exception:
os.system(r
'regsvr32 /s %s\dm.dll
' %os.getcwd())
dm_1 = dispatch('
dm.dmsoft')
(dm_1.ver())
return dm_1
leftclick()將滑鼠移動到指定位置並點選,傳遞的引數有4-5個,前兩個是xy座標後兩個是xy座標的偏移量,沒有也要填0,最後乙個是點選過後休息(預設為0.3-0.5秒),也可以手動傳入。
keypress()按下後立馬放開某鍵,這個間隔和是否設定隨機時間有關,預設值也和繫結視窗鍵盤的模式有關(setkeypaddelay("normal", 70))
keyup()按下某鍵不鬆
keydown()鬆開某鍵
後三個關於鍵盤的函式都需要傳入乙個鍵盤碼(int型別),在繫結測試工具中的鍵盤測試頁面可以找到。
以上**為dmmain.py檔案中,下面這段**是另乙個檔案test.py檔案。
from dmmain import這段**中有兩個函式,operation
from win32gui import
findwindow
from dmmain import
regsvr
defclose_txt_1(operation_1):
#隨便點選兩次觀察游標
operation_1.leftclick(100, 10, 5, 5)
operation_1.leftclick(100, 180, 5, 5)
defclose_txt_2(operation_1):
#組合鍵 按下alt(不松) 然後按下f(松) 接著按下x(松) 鬆開alt
operation_1.keydown(18)
operation_1.keypress(70)
operation_1.keypress(88)
operation_1.keyup(18)
if__name__ == '
__main__':
window_id = findwindow('
notepad
', none)
dm_main =regsvr()
operation =operation(dm_main, window_id)
close_txt_1(operation)
#close_txt_2(operation)
第乙個函式是隨便點選記事本中的內容觀察游標閃爍的位置,如果位置變換則滑鼠事件響應(此時注釋掉了呼叫第二個關閉記事本函式的語句便於觀察)。
第二個則是使用鍵盤的簡捷鍵關閉記事本的函式(處於被注釋狀態)。如果取消注釋,執行後記事本關閉則鍵盤事件響應了。
圖為乙個專案的檔案 可供參考。在test.py檔案中使用了
from dmmain import regsvr
from dmmain import operation
兩行**將dmmain.py的所有功能引入。
為什麼要這麼做?
如果要用dm做出乙個成型的指令碼,如果都放在乙個py檔案裡會顯得很亂。
注意:1.上面的**中封裝的函式很簡單只供示範和測試,不同人可以根據需要自己封裝比較複雜的函式
2.**中使用的是前台滑鼠模式,如果有需要可以在繫結視窗時改成後台滑鼠模式(不過好像記事本並不支援後台滑鼠模式,本人也沒有測試完全,有待考證)
3.在鼠鍵事件響應後盡量加上乙個休息時間(sleep),否則執行太快容易造成相應失靈的後果
Qt Creator5 8呼叫大漠外掛程式
在網上找了很多,沒找到這方面的教程,通過qt官方幫助終於除錯成功。qt有專門的類實現com元件的呼叫,說明文件上有很多種方式,這裡簡單說明一種方式。第一步 在標頭檔案中新增需要的標頭檔案 include include include第二步 在pro檔案中新增配置 qt axcontainer第三步...
易語言如何呼叫大漠外掛程式
由於大漠是com元件,我們在呼叫大漠時,需要先通過註冊到系統,有可以通過支援庫呼叫,以後還可以免註冊呼叫,對於剛接觸的童鞋我們建議採用元件,支援庫,呼叫,但支援庫是不支援靜態編譯的,從學習的角度,我們是了解它的呼叫過程。1 先將大漠外掛程式註冊 工具 型別庫或ocx組建 支援庫 支援庫配置 dm 2...
VC 呼叫大漠外掛程式的方法
測試環境 win7 64位 vc 6.0 注意的幾點 1 大漠外掛程式必須要註冊之後才能使用。2 註冊時要保證dm.dll,在你要註冊的路徑下。3 使用大漠函式時,要加上dm.h標頭檔案 首先,大漠的dll,不是普通的dll,它是乙個active x外掛程式,必需要註冊之後才能使用,註冊是否成功可以...