鼠标中轴滚动&键盘输入

Posted 天际流云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鼠标中轴滚动&键盘输入相关的知识,希望对你有一定的参考价值。

python模拟鼠标中轴滚动

 

网上对这个说的不多,自己搜了些帖子,写下自己的经验:

需要用到的模块win32api、win32con,安装pywin32即可

下载地址:http://download.csdn.net/detail/clean_water/9759816

 

下面这个方法可模拟鼠标中轴滑动,-1代表页面向下,1代表向上。网上说了可以指定任意数,亲测后发现程序只识别正数、负数,正数向上移动一个位置,负数向下移动一个位置,跟值大小没关系。就是时候-1和-100没区别,都只向下移动一个单位而已。前两个参数可以是0。

win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL,0,0,-1)

 

完整代码如下

# -*- coding:utf-8 -*-

import win32api
import win32con
# -1代表向下移动一个单位,-100也会向下移动一个单位,都是一个单位哦,亲~
win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL,0,0,-1)

  

robot framework 的AutoItLibrary常用关键字

https://www.cnblogs.com/yaxue/p/7458755.html

 

3、win切换窗口(键盘按下alt,操作tab键)
操作步骤如下:
AutoITLibrary.send    {ALT DOWN}
AutoITLibrary.send    {tab}
AutoITLibrary.send    {tab}
AutoItLibrary.Send    {ALT UP}


其它键盘操作,请参考:
键盘输入
    [Arguments]    ${keys}  ${flag}=0
    [Documentation]  模拟键盘输入,需要两个参数:
    ...  第一个参数: 需要输入的键盘按键
    ...  第二个参数: 标记变量,可选值,默认为0,
    ...               0:  代表第一个参数${keys}中的!+^#代表特殊按键
    ...               1:  代表第一个参数${keys}中的所有字符都是普通字符串
    ...  举例:
    ...  ^a^c^v!{F4}      代表:Ctrl+a Ctrl+c Ctrl+v Alt+F4
    ...  关于特殊按键的说明:
    ...      如果${flag}为0,则:
    ...     !  代表ALT按键
    ...     +  代表SHIFT按键
    ...     ^  代表CTRL按键
    ...     #  代表WIN按键
    ...  比如:!+a  代表:ALT+SHIFT+a
    ...  其他特殊按键:
    ...  ${flags}为0的时候,还支持下述特殊按键:
    ...     输入  最终的键盘按键
    ...     {!}                     !
    ...     {#}                     #
    ...     {+}                     +
    ...     {^}                     ^
    ...     {{}                     {
    ...     {}}                     }
    ...     {SPACE}                 SPACE
    ...     {ENTER}                 ENTER key on the main keyboard
    ...     {ALT}                   ALT
    ...     {BACKSPACE} or {BS}     BACKSPACE
    ...     {DELETE} or {DEL}       DELETE
    ...     {UP}                    Cursor up
    ...     {DOWN}                  Cursor down
    ...     {LEFT}                  Cursor left
    ...     {RIGHT}                 Cursor right
    ...     {HOME}                  HOME
    ...     {END}                   END
    ...     {ESCAPE} or {ESC}       ESCAPE
    ...     {INSERT} or {INS}       INS
    ...     {PGUP}                  PageUp
    ...     {PGDN}                  PageDown
    ...     {F1} - {F12}            Function keys
    ...     {TAB}                   TAB
    ...     {PRINTSCREEN}           Print Screen key
    ...     {LWIN}                  Left Windows key
    ...     {RWIN}                  Right Windows key
    ...     {NUMLOCK on}            NUMLOCK (on/off/toggle)
    ...     {CAPSLOCK off}          CAPSLOCK (on/off/toggle)
    ...     {SCROLLLOCK toggle}     SCROLLLOCK (on/off/toggle)
    ...     {BREAK}                 for Ctrl+Break processing
    ...     {PAUSE}                  PAUSE
    ...     {NUMPAD0} - {NUMPAD9}    Numpad digits
    ...     {NUMPADMULT}             Numpad Multiply
    ...     {NUMPADADD}              Numpad Add
    ...     {NUMPADSUB}              Numpad Subtract
    ...     {NUMPADDIV}              Numpad Divide
    ...     {NUMPADDOT}              Numpad period
    ...     {NUMPADENTER}            Enter key on the numpad
    ...     {APPSKEY}                Windows App key
    ...     {LALT}                   Left ALT key
    ...     {RALT}                   Right ALT key
    ...     {LCTRL}                  Left CTRL key
    ...     {RCTRL}                  Right CTRL key
    ...     {LSHIFT}                 Left Shift key
    ...     {RSHIFT}                 Right Shift key
    ...     {ALTDOWN}                Holds the ALT key down until {ALTUP} is sent
    ...     {SHIFTDOWN}              Holds the SHIFT key down until {SHIFTUP} is sent
    ...     {CTRLDOWN}               Holds the CTRL key down until {CTRLUP} is sent
    ...     {LWINDOWN}               Holds the left Windows key down until {LWINUP} is sent
    ...     {RWINDOWN}               Holds the right Windows key down until {RWINUP} is sent
    ...     {ASC nnnn}               Send the ALT+nnnn key combination
    AutoItLibrary.Send  ${keys}  ${flag}

键盘输入Alt+F4
    AutoItLibrary.Send  !{F4}

键盘输入Ctrl+Space
    AutoItLibrary.Send  ^{SPACE}

键盘输入Ctrl+a
    AutoItLibrary.Send  ^a

键盘输入Ctrl+c
    AutoItLibrary.Send  ^c

键盘输入Ctrl+v
    AutoItLibrary.Send  ^v

键盘输入Ctrl+s
    AutoItLibrary.Send  ^s

键盘输入Ctrl+p
    AutoItLibrary.Send  ^p

键盘输入Ctrl+Home
    AutoItLibrary.Send  ^{HOME}

键盘输入Ctrl+End
    AutoItLibrary.Send  ^{END}

键盘输入Win+d
    键盘输入  {LWINDOWN}d{LWINUP}

键盘输入Win+r
    键盘输入  {LWINDOWN}r{LWINUP}

 

补充一下:
"Send" 命令语法类似 ScriptIt(微软提供的命令行程序) 与 Visual Basic 的 "SendKeys" 命令. 字符按原样发送, 但下列字符除外:
\'!\'
1). 发送 ALT 键击动作, 因此, Send("This is text!a") 将发送 "This is text" 然后点击 "ALT+a";
2). 有些程序区分字母的大小写和 ALT 键, 即: "!A" 不同于 "!a". "!A" 表示 ALT+SHIFT+A, 而 "!a" 则表示 ALT+a. 如果有疑问最好使用小写!
\'+\'
发送 SHIFT 键击动作, Send("Hell+o") 表示发送文本 "HellO". 而 Send("!+a") 表示发送 "ALT+SHIFT+a".
\'^\'
1). 发送CTRL键击动作, Send("^!a") 表示发送 "CTRL+ALT+a";
2). 有些程序区分字母的大小写和 CTRL 键,即 "^A" 不同于 "^a". "^A" 表示 CTRL+SHIFT+A, 而 "^a" 表示 CTRL+a. 如果有疑问最好使用小写!
\'#\'
发送 Windows 徽标键; Send("#r") 表示发送 Win+r 启动"运行"对话框,在RF中使用#时需要用\\转义

以上是关于鼠标中轴滚动&键盘输入的主要内容,如果未能解决你的问题,请参考以下文章

隐藏滚动条,同时仍然可以使用鼠标/键盘滚动[重复]

winform中键盘和鼠标事件的捕捉和重写

为啥我的鼠标滚动时会莫名其妙的变成放大缩小页面了?该怎么办?

在没有鼠标或键盘箭头的情况下滚动 Visual Studio Intellisense 列表

电脑wps一打字就滚动,怎么解决?

手机端&PC端鼠标和手势交互异同辨析(一)