python呼叫大漠外掛程式教程04鼠鍵事件示例

2022-07-24 10:24:11 字數 3477 閱讀 7524

from win32com.client import

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)

print

(self.dm.getclientsize(self.hwnd))

print('

繫結成功')

defgetwindowsize(self):

ret =self.dm.getclientsize(self.hwnd)

self.width, self.height = ret[1], ret[2]

print

(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')

print

(dm_1.ver())

return dm_1

getwindowsize()獲取螢幕的長寬(暫時沒有用到)

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外掛程式,必需要註冊之後才能使用,註冊是否成功可以...