[转]使用MATLAB模拟键盘按键[来源MatlabSky by baby_wolf]
(2015-02-04 14:59:15)
标签:
matlab量化投资鼠标模拟键盘模拟 |
分类: 基于MATLAB的量化投资 |
原帖地址:
[原创]使用MATLAB模拟键盘按键
http://www.matlabsky.com/thread-23877-1-1.html
==================
发一个我自己摸索出来的MATLAB模拟按键的应用实例,复制下面的代码到命令行,按回车之后,不要动键盘和鼠标,观看模拟按键的效果!挺有意思的!
代码详解
第一行,vb=actxserver('wscript.shell');创建一个wscript.shell对象,这是window操作系统自带的,属于VBS脚本语言的重要组成部分。
第二行,!echo 2>demo.txt 执行一条dos命令,目的是创建一个空的文本文档demo.txt
第三行,执行MATLAB命令winopen,打开之前创建的空文本。
第四行,暂停0.5s,目的是等待winopen执行完毕。
第五行,定义要演示的语句s
第六行,关键语句,模拟按键 大小写切换
第七-十行,循环发送按键,逐个输出第五行定义的字符。每个字符之间暂停0.2s
第十一行,模拟 CTRL+S 按键,保存文本文件
第一行,vb=actxserver('wscript.shell');创建一个wscript.shell对象,这是window操作系统自带的,属于VBS脚本语言的重要组成部分。
第二行,!echo 2>demo.txt
第三行,执行MATLAB命令winopen,打开之前创建的空文本。
第四行,暂停0.5s,目的是等待winopen执行完毕。
第五行,定义要演示的语句s
第六行,关键语句,模拟按键 大小写切换
第七-十行,循环发送按键,逐个输出第五行定义的字符。每个字符之间暂停0.2s
第十一行,模拟 CTRL+S
sendkeys
语法编辑
SendKeys string[, wait]
2参数意义编辑
string部分必需的,字符串表达式,指定要发送的按键消息。
Wait可选的,指定等待方式的值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程;如果为
True,则按键消息必须在控件返回到过程之前加以处理。说明每个按键由一个或多个字符表示。
3用法编辑
1)为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母
A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示
A、B 及 C,可用 "ABC" 作为 string。
2)对 SendKeys
来说,加号+ 、插入符^ 、百分号% 、上划线~ 及圆括号(
) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号{}当中。例如,要指定正号,可用
{+} 表示。为了指定大括号字符,请使用 {{} 及 {}}。方括号 [ ] 对
SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE)
的时候,它可能具有重要意义。
3)为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB
以及那些表示动作而非字符的按键,请使用下列代码:
按键
|
代码
|
---|---|
BACKSPACE
|
{BACKSPACE}, {BS}或{BKSP}
|
BREAK
|
{BREAK}
|
CAPS
LOCK
|
{CAPSLOCK}
|
DEL or
DELETE
|
{DELETE}
或 {DEL}
|
ENTER
|
{ENTER}或
~
|
ESC
|
{ESC}
|
NUM
LOCK
|
{NUMLOCK}
|
SCROLL
LOCK
|
{SCROLLLOCK}
|
UP
ARROW
|
{UP}
|
DOWN
ARROW
|
{DOWN}
|
LEFT
ARROW
|
{LEFT}
|
RIGHT
ARROW
|
{RIGHT}
|
END
|
{END}
|
HOME
|
{HOME}
|
INS or
INSERT
|
{INSERT}
或 {INS}
|
PAGE
DOWN
|
{PGDN}
|
PAGE
UP
|
{PGUP}
|
PRINT
SCREEN
|
{PRTSC}
|
WIN
|
^{ESC}
|
TAB
|
{TAB}
|
HELP
|
{HELP}
|
F1
|
{F1}
|
F2
|
{F2}
|
F3
|
{F3}
|
F4
|
{F4}
|
F5
|
{F5}
|
F6
|
{F6}
|
F7
|
{F7}
|
F8
|
{F8}
|
F9
|
{F9}
|
F10
|
{F10}
|
F11
|
{F11}
|
F12
|
{F12}
|
注意:如果要输出空格可以这样编写程序:“sendkeys(" ")"
4)为了指定那些与 SHIFT、CTRL 及 ALT
等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:
按键
|
代码
|
---|---|
SHIFT
|
+
|
CTRL
|
^
|
ALT
|
%
|
5)为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT
的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用
"+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
6)为了指定重复键,使用 {key number} 的形式。必须在 key 与 number
之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H
键。
注意:
-
SendKeys 不能将按键消息发送到这样一个应用程序——这个应用程序并没有被设计成在 Microsoft Windows 中运行。
-
Sendkeys 也无法将PRINT SCREEN 按键发送到任何应用程序。
4示例编辑
set WshShell = WScript.CreateObject("WScript.Shell") '调用
WScript.Sleep 100 '延时0.1秒
WshShell.SendKeys "ABCD" '顺序发送ABCD四个键
初学者实例:
Private Sub Command1_Click() ‘command1的单击(click)事件过程
SendKeys("{ENTER}") '发送回车键
End Sub ’事件结束