【问题标题】:Java and SetWindowDisplayAffinityJava 和 SetWindowDisplayAffinity
【发布时间】:2019-04-18 06:17:55
【问题描述】:

我正在使用 jna.extra.User32Extra 库,我必须更改 windowdisplayaffinity 值。 不幸的是,输出总是错误的,我不知道为什么,而且这段代码不起作用。我希望 WDA_MONITOR 在打印屏幕时使窗口变黑

public class Browser extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        StackPane pane = new StackPane();
        WebView view = new WebView();

        WebEngine engine = view.getEngine();
        engine.load("https://google.com");
        pane.getChildren().add(view);

        Scene scene = new Scene(pane, 1280, 720);
        stage.setTitle("Browser JAVA");        
        stage.setScene(scene);

        WinDef.HWND hWnd = User32.INSTANCE.FindWindow(null, "");
        boolean output = User32Extra.INSTANCE.SetWindowDisplayAffinity(hWnd, 1); 
        System.out.println("output "+output);//false

        stage.show();
    }

    public static void main(String[] args) throws IOException {
        Application.launch(args);
    }
}

【问题讨论】:

    标签: java winapi screen-scraping jna


    【解决方案1】:

    也许您的窗口不是顶部窗口,正如文档所建议的那样:

    例如,当函数调用是在非顶级窗口上进行时,它会返回 FALSE。 https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setwindowdisplayaffinity

    你应该按照医生说的做:

    要获取更多错误信息,请致电GetLastError

    【讨论】:

      猜你喜欢
      • 2021-04-30
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2018-11-05
      • 2010-10-05
      相关资源
      最近更新 更多