线程 "main" com.jacob.com.ComFailException 中的异常:无法共同创建对象
Exception in thread "main" com.jacob.com.ComFailException: Can't co-create object
我正在学习本教程:http://www.joecolantonio.com/2014/07/02/selenium-autoit-how-to-automate-non-browser-based-functionality/ 在 Windows 中自动化非浏览器应用程序。
import java.io.File;
import autoitx4java.AutoItX;
import com.jacob.com.LibraryLoader;
import java.lang.System;
public class CalcTest {
/**
*
* Returns if the JVM is 32 or 64 bit version
*/
public static String jvmBitVersion(){
return System.getProperty("sun.arch.data.model");
}
public static void main(String[] args) throws InterruptedException {
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();
x.run("calc.exe");
x.winActivate("Calculator");
x.winWaitActive("Calculator");
//Enter 3
x.controlClick("Calculator", "", "133") ;
Thread.sleep(1000);
//Enter +
x.controlClick("Calculator", "", "93") ;
Thread.sleep(1000);
//Enter 3
x.controlClick("Calculator", "", "133") ;
Thread.sleep(1000);
//Enter =
x.controlClick("Calculator", "", "121") ;
}
}
我收到以下错误:
Exception in thread "main" com.jacob.com.ComFailException: Can't co-create object
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
at autoitx4java.AutoItX.<init>(AutoItX.java:181)
at CalcTest.main(CalcTest.java:30)
教程说我应该在 cmd 中 运行 regsvr32 C:\install\AutoItX\AutoItX3_x64.dll
但我一直收到以下错误:
The module "C:\install\AutoItX\AutoItX3_x64.dll" was loaded but the call to DllRegisterServer failed with error code 0x80070005
我不知道该怎么做。
我不得不 运行 以管理员身份执行命令。不妨把它留下来。我敢肯定有一天有人会发现自己在同一条船上...
运行 以管理员身份登录 cmd,因为您使用的是 64 位 os,运行 它在路径 C:\Windows\SysWOW64
对于路径中的 32 位 运行,C:\Windows\System32
--Swapna Mhatre
以下解决方案对我有用:
复制 AutoItX3_x64.dll
文件。您可以在 C:\Program Files (x86)\AutoIt3\AutoItX
.
中找到它
粘贴到C:\Windows\System32
.
打开 cmd 提示符,运行 以管理员身份。输入 regsvr32 AutoItX3_x64.dll
并按 Enter.
AutoItX3_x64.dll中的DllRegisterServer成功后会有提示
我正在学习本教程:http://www.joecolantonio.com/2014/07/02/selenium-autoit-how-to-automate-non-browser-based-functionality/ 在 Windows 中自动化非浏览器应用程序。
import java.io.File;
import autoitx4java.AutoItX;
import com.jacob.com.LibraryLoader;
import java.lang.System;
public class CalcTest {
/**
*
* Returns if the JVM is 32 or 64 bit version
*/
public static String jvmBitVersion(){
return System.getProperty("sun.arch.data.model");
}
public static void main(String[] args) throws InterruptedException {
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();
x.run("calc.exe");
x.winActivate("Calculator");
x.winWaitActive("Calculator");
//Enter 3
x.controlClick("Calculator", "", "133") ;
Thread.sleep(1000);
//Enter +
x.controlClick("Calculator", "", "93") ;
Thread.sleep(1000);
//Enter 3
x.controlClick("Calculator", "", "133") ;
Thread.sleep(1000);
//Enter =
x.controlClick("Calculator", "", "121") ;
}
}
我收到以下错误:
Exception in thread "main" com.jacob.com.ComFailException: Can't co-create object
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:99)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58)
at autoitx4java.AutoItX.<init>(AutoItX.java:181)
at CalcTest.main(CalcTest.java:30)
教程说我应该在 cmd 中 运行 regsvr32 C:\install\AutoItX\AutoItX3_x64.dll
但我一直收到以下错误:
The module "C:\install\AutoItX\AutoItX3_x64.dll" was loaded but the call to DllRegisterServer failed with error code 0x80070005
我不知道该怎么做。
我不得不 运行 以管理员身份执行命令。不妨把它留下来。我敢肯定有一天有人会发现自己在同一条船上...
运行 以管理员身份登录 cmd,因为您使用的是 64 位 os,运行 它在路径 C:\Windows\SysWOW64
对于路径中的 32 位 运行,C:\Windows\System32
--Swapna Mhatre
以下解决方案对我有用:
复制
AutoItX3_x64.dll
文件。您可以在C:\Program Files (x86)\AutoIt3\AutoItX
. 中找到它
粘贴到
C:\Windows\System32
.打开 cmd 提示符,运行 以管理员身份。输入
regsvr32 AutoItX3_x64.dll
并按 Enter.AutoItX3_x64.dll中的DllRegisterServer成功后会有提示