python postmessage 鼠标_SilkTest高级进阶系列7-用PostMessage模拟鼠标

SilkTest可以通过调用Windows API来向控件发送消息,从而进行特定的操作。下面这段code使用PostMessage来向计算器上的清除键发送WM_LBUTTONDOWN和WM_LBUTTONUP两个消息,从而模拟PressMouse和ReleaseMouse的操作。

[ ] use “C:/TA/SilkTest/mswfun32.inc”

[ ] use “C:/TA/SilkTest/msw32.inc”

[ ] use “C:/TA/SilkTest/mswconst.inc”

[ ]

[+] window MainWin Calculator

[+] multitag “Calculator”

[ ] “$C:/WINNT/system32/calc.exe”

[+] Menu Edit

[ ] tag “Edit”

[+] MenuItem Copy

[+] multitag “Copy”

[ ] “$300”

[+] MenuItem Paste

[+] multitag “Paste”

[ ] “$301”

[+] Menu View

[ ] tag “View”

[+] MenuItem Standard

[+] multitag “Standard”

[ ] “$305”

[+] MenuItem Scientific

[+] multitag “Scientific”

[ ] “$304”

[+] MenuItem DigitGrouping

[+] multitag “Digit grouping”

[ ] “$303”

[+] Menu Help

[ ] tag “Help”

[+] MenuItem HelpTopics

[+] multitag “Help Topics”

[ ] “$317”

[+] MenuItem AboutCalculator

[+] multitag “About Calculator”

[ ] “$302”

[+] TextField TextField1

[ ] tag “$403”

[+] PushButton MC

[+] multitag “MC”

[ ] “$113”

[+] PushButton MR

[+] multitag “MR”

[ ] “$114”

[+] PushButton MS

[+] multitag “MS”

[ ] “$115”

[+] PushButton M

[+] multitag “M+”

[ ] “$116”

[+] PushButton N7

[+] multitag “7”

[ ] “$131”

[+] PushButton N4

[+] multitag “4”

[ ] “$128”

[+] PushButton N1

[+] multitag “1”

[ ] “$125”

[+] PushButton N0

[+] multitag “0”

[ ] “$124”

[+] PushButton N8

[+] multitag “8”

[ ] “$132”

[+] PushButton N51

[+] multitag “5”

[ ] “$129”

[+] PushButton N2

[+] multitag “2”

[ ] “$126”

[+] PushButton PushButton24

[+] multitag “+?-”

[ ] “$80”

[+] PushButton N91

[+] multitag “9”

[ ] “$133”

[+] PushButton N6

[+] multitag “6”

[ ] “$130”

[+] PushButton N3

[+] multitag “3”

[ ] “$127”

[+] PushButton N16

[+] multitag “?[16]”

[ ] “$85”

[+] PushButton N52

[+] multitag “?[5]”

[ ] “$90”

[+] PushButton N92

[+] multitag “?[9]”

[ ] “$91”

[+] PushButton PushButton20

[+] multitag “-”

[ ] “$93”

[+] PushButton PushButton26

[+] multitag “+”

[ ] “$92”

[+] PushButton PushButton27

[+] multitag “=”

[ ] “$112”

[+] PushButton Backspace

[+] multitag “Backspace”

[ ] “$83”

[+] PushButton CE

[+] multitag “CE”

[ ] “$82”

[+] PushButton C

[+] multitag “C”

[ ] “$81”

[+] StaticText StaticText1

[ ] tag “$401”

[+] PushButton N1X

[+] multitag “1?x”

[ ] “$107”

[+] PushButton Sqt

[+] multitag “sqt”

[ ] “$103”

[+] PushButton PushButton15

[+] multitag “%”

[ ] “$109”

[+] StaticText StaticText2

[ ] tag “$1000”

[ ]

[+] testcase PressAndReleaseButton() appstate none

[ ] // get the hanle of window

[ ] INTEGER hdWnd = Calculator.CE.GetHandle()

[ ] // input 11

[ ] Calculator.SetActive()

[ ] Calculator.N1.Click()

[ ] Calculator.N1.Click()

[ ] sleep(1)

[ ] // Press Left key of mouse

[ ] PostMessage(hdWnd, WM_LBUTTONDOWN, 0, 0 )

[ ] sleep(4)

[ ] // Release Left key of mouse

[ ] PostMessage(hdWnd, WM_LBUTTONUP,0, 0)

[ ]

你同样可以通过SendMessage实现相同的功能,他们二者的差别就是一个是异步消息,一个是同步消息。如果你想了解更多,可以google下二者具体的区别。

另外附上一些Windows常用消息号。

WM_NULL = 0x00

WM_CREATE = 0x01

WM_DESTROY = 0x02

WM_MOVE = 0x03

WM_SIZE = 0x05

WM_ACTIVATE = 0x06

WM_SETFOCUS = 0x07

WM_KILLFOCUS = 0x08

WM_ENABLE = 0x0A

WM_SETREDRAW = 0x0B

WM_SETTEXT = 0x0C

WM_GETTEXT = 0x0D

WM_GETTEXTLENGTH = 0x0E

WM_PAINT = 0x0F

WM_CLOSE = 0x10

WM_QUERYENDSESSION = 0x11

WM_QUIT = 0x12

WM_QUERYOPEN = 0x13

WM_ERASEBKGND = 0x14

WM_SYSCOLORCHANGE = 0x15

WM_ENDSESSION = 0x16

WM_SYSTEMERROR = 0x17

WM_SHOWWINDOW = 0x18

WM_CTLCOLOR = 0x19

WM_WININICHANGE = 0x1A

WM_SETTINGCHANGE = 0x1A

WM_DEVMODECHANGE = 0x1B

WM_ACTIVATEAPP = 0x1C

WM_FONTCHANGE = 0x1D

WM_TIMECHANGE = 0x1E

WM_CANCELMODE = 0x1F

WM_SETCURSOR = 0x20

WM_MOUSEACTIVATE = 0x21

WM_CHILDACTIVATE = 0x22

WM_QUEUESYNC = 0x23

WM_GETMINMAXINFO = 0x24

WM_PAINTICON = 0x26

WM_ICONERASEBKGND = 0x27

WM_NEXTDLGCTL = 0x28

WM_SPOOLERSTATUS = 0x2A

WM_DRAWITEM = 0x2B

WM_MEASUREITEM = 0x2C

WM_DELETEITEM = 0x2D

WM_VKEYTOITEM = 0x2E

WM_CHARTOITEM = 0x2F

WM_SETFONT = 0x30

WM_GETFONT = 0x31

WM_SETHOTKEY = 0x32

WM_GETHOTKEY = 0x33

WM_QUERYDRAGICON = 0x37

WM_COMPAREITEM = 0x39

WM_COMPACTING = 0x41

WM_WINDOWPOSCHANGING = 0x46

WM_WINDOWPOSCHANGED = 0x47

WM_POWER = 0x48

WM_COPYDATA = 0x4A

WM_CANCELJOURNAL = 0x4B

WM_NOTIFY = 0x4E

WM_INPUTLANGCHANGEREQUEST = 0x50

WM_INPUTLANGCHANGE = 0x51

WM_TCARD = 0x52

WM_HELP = 0x53

WM_USERCHANGED = 0x54

WM_NOTIFYFORMAT = 0x55

WM_CONTEXTMENU = 0x7B

WM_STYLECHANGING = 0x7C

WM_STYLECHANGED = 0x7D

WM_DISPLAYCHANGE = 0x7E

WM_GETICON = 0x7F

WM_SETICON = 0x80

WM_NCCREATE = 0x81

WM_NCDESTROY = 0x82

WM_NCCALCSIZE = 0x83

WM_NCHITTEST = 0x84

WM_NCPAINT = 0x85

WM_NCACTIVATE = 0x86

WM_GETDLGCODE = 0x87

WM_NCMOUSEMOVE = 0xA0

WM_NCLBUTTONDOWN = 0xA1

WM_NCLBUTTONUP = 0xA2

WM_NCLBUTTONDBLCLK = 0xA3

WM_NCRBUTTONDOWN = 0xA4

WM_NCRBUTTONUP = 0xA5

WM_NCRBUTTONDBLCLK = 0xA6

WM_NCMBUTTONDOWN = 0xA7

WM_NCMBUTTONUP = 0xA8

WM_NCMBUTTONDBLCLK = 0xA9

WM_KEYFIRST = 0x100

WM_KEYDOWN = 0x100

WM_KEYUP = 0x101

WM_CHAR = 0x102

WM_DEADCHAR = 0x103

WM_SYSKEYDOWN = 0x104

WM_SYSKEYUP = 0x105

WM_SYSCHAR = 0x106

WM_SYSDEADCHAR = 0x107

WM_KEYLAST = 0x108

WM_IME_STARTCOMPOSITION = 0x10D

WM_IME_ENDCOMPOSITION = 0x10E

WM_IME_COMPOSITION = 0x10F

WM_IME_KEYLAST = 0x10F

WM_INITDIALOG = 0x110

WM_COMMAND = 0x111

WM_SYSCOMMAND = 0x112

WM_TIMER = 0x113

WM_HSCROLL = 0x114

WM_VSCROLL = 0x115

WM_INITMENU = 0x116

WM_INITMENUPOPUP = 0x117

WM_MENUSELECT = 0x11F

WM_MENUCHAR = 0x120

WM_ENTERIDLE = 0x121

WM_CTLCOLORMSGBOX = 0x132

WM_CTLCOLOREDIT = 0x133

WM_CTLCOLORLISTBOX = 0x134

WM_CTLCOLORBTN = 0x135

WM_CTLCOLORDLG = 0x136

WM_CTLCOLORSCROLLBAR = 0x137

WM_CTLCOLORSTATIC = 0x138

WM_MOUSEFIRST = 0x200

WM_MOUSEMOVE = 0x200

WM_LBUTTONDOWN = 0x201

WM_LBUTTONUP = 0x202

WM_LBUTTONDBLCLK = 0x203

WM_RBUTTONDOWN = 0x204

WM_RBUTTONUP = 0x205

WM_RBUTTONDBLCLK = 0x206

WM_MBUTTONDOWN = 0x207

WM_MBUTTONUP = 0x208

WM_MBUTTONDBLCLK = 0x209

WM_MOUSEWHEEL = 0x20A

WM_MOUSEHWHEEL = 0x20E

WM_PARENTNOTIFY = 0x210

WM_ENTERMENULOOP = 0x211

WM_EXITMENULOOP = 0x212

WM_NEXTMENU = 0x213

WM_SIZING = 0x214

WM_CAPTURECHANGED = 0x215

WM_MOVING = 0x216

WM_POWERBROADCAST = 0x218

WM_DEVICECHANGE = 0x219

WM_MDICREATE = 0x220

WM_MDIDESTROY = 0x221

WM_MDIACTIVATE = 0x222

WM_MDIRESTORE = 0x223

WM_MDINEXT = 0x224

WM_MDIMAXIMIZE = 0x225

WM_MDITILE = 0x226

WM_MDICASCADE = 0x227

WM_MDIICONARRANGE = 0x228

WM_MDIGETACTIVE = 0x229

WM_MDISETMENU = 0x230

WM_ENTERSIZEMOVE = 0x231

WM_EXITSIZEMOVE = 0x232

WM_DROPFILES = 0x233

WM_MDIREFRESHMENU = 0x234

WM_IME_SETCONTEXT = 0x281

WM_IME_NOTIFY = 0x282

WM_IME_CONTROL = 0x283

WM_IME_COMPOSITIONFULL = 0x284

WM_IME_SELECT = 0x285

WM_IME_CHAR = 0x286

WM_IME_KEYDOWN = 0x290

WM_IME_KEYUP = 0x291

WM_MOUSEHOVER = 0x2A1

WM_NCMOUSELEAVE = 0x2A2

WM_MOUSELEAVE = 0x2A3

WM_CUT = 0x300

WM_COPY = 0x301

WM_PASTE = 0x302

WM_CLEAR = 0x303

WM_UNDO = 0x304

WM_RENDERFORMAT = 0x305

WM_RENDERALLFORMATS = 0x306

WM_DESTROYCLIPBOARD = 0x307

WM_DRAWCLIPBOARD = 0x308

WM_PAINTCLIPBOARD = 0x309

WM_VSCROLLCLIPBOARD = 0x30A

WM_SIZECLIPBOARD = 0x30B

WM_ASKCBFORMATNAME = 0x30C

WM_CHANGECBCHAIN = 0x30D

WM_HSCROLLCLIPBOARD = 0x30E

WM_QUERYNEWPALETTE = 0x30F

WM_PALETTEISCHANGING = 0x310

WM_PALETTECHANGED = 0x311

WM_HOTKEY = 0x312

WM_PRINT = 0x317

WM_PRINTCLIENT = 0x318

WM_HANDHELDFIRST = 0x358

WM_HANDHELDLAST = 0x35F

WM_PENWINFIRST = 0x380

WM_PENWINLAST = 0x38F

WM_COALESCE_FIRST = 0x390

WM_COALESCE_LAST = 0x39F

WM_DDE_FIRST = 0x3E0

WM_DDE_INITIATE = 0x3E0

WM_DDE_TERMINATE = 0x3E1

WM_DDE_ADVISE = 0x3E2

WM_DDE_UNADVISE = 0x3E3

WM_DDE_ACK = 0x3E4

WM_DDE_DATA = 0x3E5

WM_DDE_REQUEST = 0x3E6

WM_DDE_POKE = 0x3E7

WM_DDE_EXECUTE = 0x3E8

WM_DDE_LAST = 0x3E8

WM_USER = 0x400

WM_APP = 0x8000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值