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

 Risposta accettata

Walter Roberson
Walter Roberson il 11 Apr 2011

1 voto

Java Robot class.

7 Commenti

%Example
import java.awt.Robot;
import java.awt.event.*;
SimKey=Robot;
SimKey.keyPress(KeyEvent.VK_P);
Matt Fig
Matt Fig il 11 Apr 2011
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);
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);
execute my code and Matt code on the command line of matlab (not in a script) :)
In theory shouldn't you also be sending virtual key release events?
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? "

Accedi per commentare.

Più risposte (5)

Garrett Cassidy
Garrett Cassidy il 14 Ago 2019

1 voto

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 il 11 Apr 2011

0 voti

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 Commenti

Paulo Silva
Paulo Silva il 11 Apr 2011
Modificato: dpb il 5 Lug 2020
Jan
Jan il 11 Apr 2011
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...

Accedi per commentare.

ali
ali il 30 Nov 2011

0 voti

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
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 il 19 Dic 2014

0 voti

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 ?

Categorie

Scopri di più su Convert Image Type in Centro assistenza e File Exchange

Richiesto:

il 11 Apr 2011

Modificato:

dpb
il 5 Lug 2020

Community Treasure Hunt

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

Start Hunting!

Translated by