gpt4 book ai didi

java - 如何使用 AutoIT 单击 java swing 控件?

转载 作者:行者123 更新时间:2023-11-30 10:22:13 25 4
gpt4 key购买 nike

我正在尝试使用 AutoIt 自动化我的 Java 应用程序,但我在单击某些按钮时遇到困难。

我认为 AutoIt 知道控件在哪里,正如您在下面突出显示的那样,问题是它不会单击控件。

Java Application Screenshot

这是我的源代码...

    String jacobDllVersionToUse;
if (System.getProperty("sun.arch.data.model").contains("32")) {
jacobDllVersionToUse = "jacob-1.18-x86.dll";
} else {
jacobDllVersionToUse = "jacob-1.18-x64.dll";
}

System.out.println(jacobDllVersionToUse);

File file = new File("autoit", jacobDllVersionToUse);
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());

AutoItX x = new AutoItX();
String hWnd = "GfcEmulator-Hybrid";
String exeDir = "C:\\GFC\\resources\\props";
String exeName = "GFCEmulator_Automation.jar";

Runtime.getRuntime().exec("cmd /c cd " + exeDir + " && " + exeName + "");
x.winActivate(hWnd);
x.winWaitActive(hWnd);

x.ControlSetText(hWnd, "", "[CLASS:RichEdit20W; INSTANCE:1]", "____________");
x.ControlSetText(hWnd, "", "[CLASS:RichEdit20W; INSTANCE:2]", "____________");
x.ControlSetText(hWnd, "", "[CLASS:RichEdit20W; INSTANCE:3]", "____________");
x.ControlSetText(hWnd, "", "[CLASS:RichEdit20W; INSTANCE:4]", "____________");

x.controlClick(hWnd, "", "[CLASS:ComboBox; INSTANCE:1]");
x.controlSend(hWnd, "", "[CLASS:ComboBox; INSTANCE:1]", "{down}+{enter}");

x.sleep(1000);
x.controlClick(hWnd, "", "[CLASS:Button; INSTANCE:1]"); // Click Connect Button, I already tried every method I know just to make this work but it all fails.

其他细节:

操作系统:Windows 10

按钮信息:

Connect Button Information

最佳答案

Auto IT 对检测 Java Swing 中的控件有限制

我按照 AutoIT 论坛中的指南找到了解决方法:Java UDF

此 UDF 为 Java 应用程序提供自动化支持。

此 UDF 目前自动化独立应用程序和基于浏览器的小程序,它们是在 Swing 或抽象窗口工具包 (AWT) 中开发的。

关于java - 如何使用 AutoIT 单击 java swing 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com