加载中…
个人资料
faruto
faruto 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,256,832
  • 关注人气:2,113
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转]使用MATLAB模拟键盘按键[来源MatlabSky by baby_wolf]

(2015-02-04 14:59:15)
标签:

matlab

量化投资

鼠标模拟

键盘模拟

分类: 基于MATLAB的量化投资
原帖地址:
[原创]使用MATLAB模拟键盘按键
http://www.matlabsky.com/thread-23877-1-1.html
==================

发一个我自己摸索出来的MATLAB模拟按键的应用实例,复制下面的代码到命令行,按回车之后,不要动键盘和鼠标,观看模拟按键的效果!挺有意思的!
  1. vb=actxserver('wscript.shell');
  2. !echo 2>demo.txt
  3. winopen('demo.txt');
  4. pause(0.5);
  5. s='I LOVE MATLAB EVEN BETTER THAN YOU!  -baby_wolf';
  6. vb.SendKeys('{CAPSLOCK}');
  7. for i=1:length(s)
  8. vb.SendKeys(s(i));
  9. pause(0.2);
  10. end
  11. vb.SendKeys(' ^s');
复制代码
代码详解
第一行,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  按键,保存文本文件


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 键。
注意:
  1. SendKeys 不能将按键消息发送到这样一个应用程序——这个应用程序并没有被设计成在 Microsoft Windows 中运行。
  2. 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 ’事件结束

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有