while trying to automate keyPress event in a loop, I get the error: "Unrecognized function or variable 'VK_i'

24 views (last 30 days)
I am trying to automate/simualte the keyboard to automatically generate/type numbers using the java robot class and I running into the following error: Unrecognized function or variable 'VK_i'. Could someone help. Here is my code snippet:
clc; clear; close all;
import java.awt.Robot;
import java.awt.event.*;
import java.awt.event.KeyEvent;
keybrd = java.awt.Robot; %Create a keyboard object
for i = 1:3
%num = num2str(i);
key = java.awt.event.KeyEvent.VK_i;
keybrd.keyPress(key);
keybrd.keyRelease(key);
end

Accepted Answer

Voss
Voss on 8 Aug 2022
key = java.awt.event.KeyEvent.(sprintf('VK_%d',i));
  2 Comments
Syed Bahrez Nadeem
Syed Bahrez Nadeem on 8 Aug 2022
Thanks! That worked. In a second for loop of the same code, I am trying to generate/type letters and I am running into indexing errors. Could you please help with this?
import java.awt.Robot;
import java.awt.event.*;
import java.awt.event.KeyEvent;
keybrd = java.awt.Robot; %Create a keyboard object
%Iterate over the length of ext. Generate and press a letter key
ext = 'tf';
for i = 1:length(ext)
% inp = strcat('java.awt.event.KeyEvent.VK_',ext(i)); %Ex: 'VK_t'
% key = eval(inp); %Evaluates the concatenated string inp and returns it
%index = num2str(i);
key = java.awt.event.KeyEvent.(sprintf('VK_%d',ext(num2str(i))));
keybrd.keyPress(key);
keybrd.keyRelease(key);
end

Sign in to comment.

More Answers (0)

Categories

Find more on Entering Commands in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!