无法使用Java中的Autoit启动cmd或记事本

时间:2016-01-22 09:56:01

标签: java selenium autoit

您好我在我的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:

http://www.joecolantonio.com/2014/07/02/selenium-autoit-how-to-automate-non-browser-based-functionality/

3 个答案:

答案 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");