我正在尝试使用Java Robot 启动alt+tab菜单.当我调用alt_tab()方法时,我想调出alt+tab菜单并保持菜单.我知道这可以用alt+ ctrl+tab来实现.
到目前为止,我已经尝试了下面的代码,并且只是alt+tab没有控制键.我不知道为什么它没有提出菜单.它只需按下alt键即可模拟.
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);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Windows 8 Pro和JDK 7.任何帮助表示赞赏!
有谁知道如何捕捉在Java中的屏幕截图(不是它自己的屏幕,但在桌面上的任何其他窗口,他们并不一定是积极的窗口)在Windows?这个类似的主题有很多线索,但我还没有找到答案.
我尝试过使用JNA,但经过几次尝试后卡住了.例如...
public class Main {
public static void main(String[] args) {
Main m = new Main();
List<WindowInfo> list = m.getWindows();
for (int i=0;i<list.size();i++)
{
WindowInfo info = list.get(i);
System.out.println(info.getTitle());
}
WindowInfo wi = list.get(0);
W32API.HDC hdcSrc = User32.instance.GetWindowDC(wi.getHwnd());
W32API.HDC hdcMemory = Gdi32.instance.CreateCompatibleDC(hdcSrc);
//W32API.HBITMAP hBitmapMemory = Gdi32.instance.CreateCompatibleBitmap(hdcSrc, int width, int height);
int width = wi.getRect().right - wi.getRect().left;
int height = wi.getRect().bottom - wi.getRect().top;
W32API.HBITMAP hBitmapMemory = Gdi32.instance.CreateCompatibleBitmap(hdcSrc, width, height);
W32API.HANDLE hOld = Gdi32.instance.SelectObject(hdcMemory, hBitmapMemory);
Gdi32.instance.BitBlt(hdcMemory, 0, …Run Code Online (Sandbox Code Playgroud)