I am trying to bring up the alt+tab menu with a Java Robot. When I call the alt_tab() method, I want to bring up the alt+tab menu and keep the menu up. I know this can be achieved using alt+ctrl+tab.
So far I have tried the code below, and also just alt+tab without the control key. I am not sure why it's not bringing up the menu. All it does is emulate pressing the alt key.
public void alt_tab() {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_TAB);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}
I am using Windows 8 Pro and JDK 7. Any help is appreciated!
There is a Windows Dev Center thread where this very problem is discussed. Apparently the rules have changed in Windows 8.
Simulation of keyboard input, which can trigger responses in the Shell, are not guaranteed to work anymore, unless the application is an assistive technology application which has UiAccess
privileges.
“An accessibility application can use SendInput to inject keystrokes corresponding to application launch shortcut keys that are handled by the shell. This functionality is not guaranteed to work for other types of applications.” — Send Input Function (Windows)
The following requirements have to be met:
- be signed
- be installed under
%ProgramFiles%
or%SystemRoot%\system32
- specify
uiAccess='true'
in the manifest- run under
SYSTEM
or the currently logged-on user