您好我在我的Java程序中使用autoIt使用autoitx4java.Below是我正在使用的代码:
import java.io.File;
import autoitx4java.AutoItX;
import com.jacob.com.LibraryLoader;
public class MyTest {
public static void main(String[] args) throws InterruptedException{
// TODO Auto-generated method stub
String jacobDllVersionToUse;
if (jvmBitVersion().contains("32")){
jacobDllVersionToUse = "jacob-1.18-x86.dll";
}
else {
jacobDllVersionToUse = "jacob-1.18-x64.dll";
}
File file = new File("lib", jacobDllVersionToUse);
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
AutoItX x = new AutoItX();
// System.out.println(file.getAbsolutePath());
x.run("cmd.exe");
}
private static String jvmBitVersion() {
// TODO Auto-generated method stub
System.out.println(System.getProperty("sun.arch.data.model"));
return System.getProperty("sun.arch.data.model");
}
}
当我运行此程序时没有任何反应,也没有错误。如果我用notepad.exe替换cmd.exe也会发生这种情况。 但是当我用calc.exe计算器替换cmd.exe时,会启动。
我是AutoIt的新手,并使用以下链接设置AutoIt with Java:
答案 0 :(得分:0)
如果查看错误的路径,可能是运行找不到cmd和notepad,可能是32/64位问题。或者流程已启动但窗口不可见,因此请检查流程是否在任务管理器中运行。
运行不会出错,但会返回" 0并将@error设置为非零"。如果成功,它将返回"已启动的进程的PID" https://www.autoitscript.com/autoit3/docs/functions/Run.htm
要查看它是否成功,请尝试此操作,看看它是否返回了pid:
MsgBox(0, "test", run("cmd.exe"))
如果返回0,则可能表示找不到程序。尝试完整的文件路径,例如:
MsgBox(0, "test", run("cmd.exe", "C:\Windows\System32\"))
如果返回pid并且进程正在运行但您没有看到窗口,请尝试添加@SW_SHOW标志:
run("cmd.exe", "", @SW_SHOW)
答案 1 :(得分:0)
run(“cmd.exe”,“”,@ SW_SHOW)工作了!
答案 2 :(得分:0)
您好打开记事本,您可以使用以下代码。因为这对我有用。
AutoItX x = new AutoItX();
x.run("notepad.exe","",AutoItX.SW_SHOW);
x.winActivate("Untitled - Notepad");
x.winWaitActive("Untitled - Notepad");
x.send("This is some text");