如何用java切换程序窗口?

类似alt + tab, 但是不是用快捷键实现,可以切换指定的程序(如:qq, 浏览器...)。

阅读 2.6k
1 个回答

设置当前某窗口为当前窗口,有几个步骤要做:
1.得到窗口句柄FindWindow
2.显示窗口ShowWindow(有些窗口被最小化/隐藏了)
3.最后SetForegroundWindow

public class TryWithHWND {

    public static void main(String args[]) {
        setFocusToWindowsApp("微信", 0);
    }
    public static void setFocusToWindowsApp(String applicationTitle, int windowState) {
        //int state = User32.SW_SHOWNORMAL; // default window state (Normal)
        int state = windowState;
        switch (state) {
            default:
            case 0:
                state = User32.SW_SHOWNORMAL;
                break;
            case 1:
                state = User32.SW_SHOWMAXIMIZED;
                break;
            case 2:
                state = User32.SW_SHOWMINIMIZED;
                break;
        }

        User32 user32 = User32.INSTANCE;
        WinDef.HWND hWnd = user32.FindWindow(null, applicationTitle);
        if (user32.IsWindowVisible(hWnd)) {
            if (state != User32.SW_SHOWMINIMIZED) {
                user32.ShowWindow(hWnd, User32.SW_SHOWMINIMIZED);
            }
            user32.ShowWindow(hWnd, state);
            user32.SetForegroundWindow(hWnd);
        }
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题