How to Simulate keyboard key inputs?

I am interested in simulating a keyboard input using .m code.
How would I go about simulating typing and other keyboard inputs?
Similar to this, but with the keyboard instead of the mouse.
Thanks,
Kevin

 採用された回答

Walter Roberson
Walter Roberson 2011 年 4 月 11 日

1 投票

Java Robot class.

7 件のコメント

Paulo Silva
Paulo Silva 2011 年 4 月 11 日
%Example
import java.awt.Robot;
import java.awt.event.*;
SimKey=Robot;
SimKey.keyPress(KeyEvent.VK_P);
Matt Fig
Matt Fig 2011 年 4 月 11 日
I like this example better:
import java.awt.Robot;
import java.awt.event.*;
SimKey=Robot;
SimKey.keyPress(KeyEvent.VK_W);
SimKey.keyPress(KeyEvent.VK_H);
SimKey.keyPress(KeyEvent.VK_Y);
SimKey.keyPress(KeyEvent.VK_ENTER);
Paulo Silva
Paulo Silva 2011 年 4 月 11 日
import java.awt.Robot;
import java.awt.event.*;
SimKey=Robot;
SimKey.keyPress(KeyEvent.VK_S);
SimKey.keyPress(KeyEvent.VK_P);
SimKey.keyPress(KeyEvent.VK_Y);
SimKey.keyPress(KeyEvent.VK_ENTER);
Paulo Silva
Paulo Silva 2011 年 4 月 11 日
execute my code and Matt code on the command line of matlab (not in a script) :)
Walter Roberson
Walter Roberson 2011 年 4 月 11 日
In theory shouldn't you also be sending virtual key release events?
Walter Roberson
Walter Roberson 2012 年 9 月 9 日
ying xing FENG commented "It works for text. But not for other active windows other than Matlab. For eg. on screen key borad. Any idea? "
Jan
Jan 2012 年 9 月 9 日

サインインしてコメントする。

その他の回答 (5 件)

Garrett Cassidy
Garrett Cassidy 2019 年 8 月 14 日

1 投票

Does anyone know how to emulate a ; or a \ ? I can emulate keystrokes, but the ‘VK_OEM_1´input to keyPress is undefined.
Thanks
Kevin
Kevin 2011 年 4 月 11 日

0 投票

Haha, nice.
Why does SimKey.keyPress(KeyEvent.VK_w); now work for undercase w? Is there a full list of keyboard inputs I can reference?
What is "VK" referencing to?

2 件のコメント

Paulo Silva
Paulo Silva 2011 年 4 月 11 日
編集済み: dpb 2020 年 7 月 5 日
Jan
Jan 2011 年 4 月 11 日
KeyEvent.VK_W is the [W] key - there is no upper or lower case *key*! You need the [Shift] key to create uppercase characters:
robot.keyPress(java.awt.event.KeyEvent.VK_SHIFT)
robot.keyPress(java.awt.event.KeyEvent.VK_W)
robot.keyRelase(java.awt.event.KeyEvent.VK_W)
robot.keyRelease(java.awt.event.KeyEvent.VK_SHIFT)
Remember: It is only a robot and it s(t)imulates the keyboard...

サインインしてコメントする。

ali
ali 2011 年 11 月 30 日

0 投票

Hi Paulo,
regarding"execute my code and Matt code on the command line of matlab (not in a script) :)"
I am going to kill an running script through simulating Ctrl+C which is written as a function like this:
import java.awt.Robot; import java.awt.event.*; SimKey=Robot; SimKey.keyPress(java.awt.event.KeyEvent.VK_CONTROL); SimKey.keyPress(java.awt.event.KeyEvent.VK_C); SimKey.keyRelease(java.awt.event.KeyEvent.VK_CONTROL);
how can I call it? when I call this function it does not work? Thanks, Ali

1 件のコメント

Walter Roberson
Walter Roberson 2011 年 11 月 30 日
Don't forget to release the VK_C

サインインしてコメントする。

Amirhosein Ghenaati
Amirhosein Ghenaati 2014 年 12 月 5 日

0 投票

hello i want to execute kmplayer then first launch kmplayer then use java robot to push space it will open media folder. my program stop when kmp starts and and when i terminates kmp space chracter will be printed in editor. here is my simple program and i dont know whats problem please help me in this situation
import java.awt.Robot
import java.awt.event.*
keys = Robot;
keys.setAutoDelay(1000)
[status currdir] = system('cd C:\Users\IranZamin\Documents\MATLAB\temporary');
[status result] = system('KMPlayer.lnk');
keys.keyPress(java.awt.event.KeyEvent.VK_SPACE )
keys.keyRelease(java.awt.event.KeyEvent.VK_SPACE )
keys.waitForIdle
Amirhosein Ghenaati
Amirhosein Ghenaati 2014 年 12 月 19 日

0 投票

i tried to make exe version of key pressing with robot class but my exe file doesn't work and i dont know what i couldnt find relative .jar file for java robot class whats its name ?

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

質問済み:

2011 年 4 月 11 日

編集済み:

dpb
2020 年 7 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by