[英]Unable to launch cmd or notepad using Autoit in Java
您好,我在Java程序中使用autoitx4java使用AutoIt。以下是我正在使用的代碼:
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的新手,並使用下面的鏈接用Java設置AutoIt:
如果它在錯誤的路徑中查找,則可能是運行找不到cmd和記事本,可能是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)
run(“ cmd.exe”,“”,@SW_SHOW)起作用了!
您好,可以使用以下代碼打開記事本。 因為這對我有用。
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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.