相关疑难解决方法(0)

使用Java Robot的Alt + Tab

我正在尝试使用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 tabs awt awtrobot alt

8
推荐指数
2
解决办法
1万
查看次数

Java - 窗口图像

有谁知道如何捕捉在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)

java winapi jna

7
推荐指数
2
解决办法
8632
查看次数

标签 统计

java ×2

alt ×1

awt ×1

awtrobot ×1

jna ×1

tabs ×1

winapi ×1