【问题标题】:Java - how to generate click on desktop 1 and desktop 2?Java - 如何在桌面 1 和桌面 2 上生成点击?
【发布时间】:2016-03-29 05:33:50
【问题描述】:

我有一个带有 2 台显示器的 KIOSK 连接到一台 PC,因为存在依赖性和第三方兼容性问题,PC 必须在启动时启动,如下所示:

a) Google Chrome 在两个屏幕上都处于自助服务终端模式(无法访问其他应用程序)

b) Firefox、Opera 不在 kiosk 模式下,但必须隐藏在 Google Chrome 后面才能进行某些打印作业

问题:

但在每次启动时,Firefox、Opera 始终保持在 Google Chrome 的顶部,即使是那些没有以 kiosk 模式启动的。

我在启动时编写了 Java 代码以触发一些点击,因此前端只显示谷歌浏览器但它不工作。

任何人都可以修复代码吗?我在做什么错?我需要在屏幕 1 (1024x768)、屏幕 2 (1280x720) 上发送连发点击。

import java.awt.DisplayMode;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class kiosk {
  public static void main(String[] args) {
    try {
      Robot robot = new Robot();
      // Screen Adjust
      robot.setAutoDelay(500);
      robot.mouseMove(1270, 400);
      robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
      robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);        

      // Screens
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsDevice[] gs = ge.getScreenDevices();
      for(GraphicsDevice curGs : gs) {
        DisplayMode dm = curGs.getDisplayMode();
        System.out.println(dm.getWidth() + " x " + dm.getHeight());
      }

    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

【问题讨论】:

    标签: java windows google-chrome firefox opera


    【解决方案1】:

    有效

    import java.awt.DisplayMode;
    import java.awt.GraphicsConfiguration;
    import java.awt.GraphicsDevice;
    import java.awt.GraphicsEnvironment;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.event.InputEvent;
    
    public class kiosk {
      public static void main(String[] args) {
        try {
          // Screens
          int ScreenID = 0;
          GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
          GraphicsDevice[] gs = ge.getScreenDevices();
          for(GraphicsDevice curGs : gs) {
    
            // Get the Displays
            DisplayMode dm = curGs.getDisplayMode();
            int x = dm.getWidth();
            System.out.println(ScreenID + " :" + dm.getWidth() + " x " + dm.getHeight());
    
            // Burst fire now
            Robot robot = new Robot();
            robot.setAutoDelay(500);
            if(ScreenID>0) {         
              robot.mouseMove(1280 + (x/13), 70);
            } else {
              robot.mouseMove(x/13, 70);
            }
            robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);   
            ScreenID++;
    
          }            
    
        } catch (Exception e) {
          System.out.println(e);
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 2021-04-20
      • 1970-01-01
      相关资源
      最近更新 更多