【发布时间】:2011-08-04 03:33:03
【问题描述】:
我正在尝试从 dll 库中调用一些方法。我在 JavaScript 和 c++ 中找到了一些示例。我不知道如何使用 c++,所以让我向您展示我为 JavaScript 示例所做的工作:
<html>
<head>
<title>Palm Pad</title>
</HEAD>
<script type="text/javascript" language="JavaScript1.2">
if(window.ActiveXObject) {
//var ActiveHomeObj = new ActiveXObject("X10.ActiveHome");
} else {
alert("This script was design to work with Internet Explore 5 and up");
}
function getUSCode(Button1,OnOff)
{
ActiveHomeObj.SendAction("sendplc","A1 on");
}
</script>
<body>
<a href="javascript:getUSCode(1,'on');">click here to see if method runs</a>
<OBJECT ID="ActiveHomeObj" classid="CLSID:001000AF-2DEF-0208-10B6-DC5BA692C858" codebase="ahscript.dll" type="application/x-oleobject"></OBJECT>
</body>
</html>
如您所见,这是一个非常简单的 html 页面,只有一个 JavaScript 函数,在单击链接时会执行该函数。该脚本的问题在于它仅适用于 Internet Explorer,并且在使用它时我会收到 警告。
如果我使用 Internet Explorer 并启用被阻止的内容,我可以在 ahscript.dll 库上执行 SendAction 方法。
我也想在其他浏览器上运行它,所以如果我能创建一个 .bat 文件让我能够做同样的事情,那就太好了。或者一个vbs脚本。或任何其他脚本...
如果由于某种原因您知道 AutoIt 是我尝试过的:
DllCall("ahscript.dll","none","SendAction","str","sendplc","str", "A1 on")
and
$o = ObjCreate("C:\Users\Virgilio\Desktop\x10\ahscript.dll")
$o.SendAction("sendplc","A1 on")
在 vbs 中我有类似的东西。
我如何创建一个可执行文件,在执行它时我可以获得相同的结果,如果我在 Internet Explorer 中打开 html 文件然后启用警告并最后执行 javascrip 函数?
【问题讨论】:
-
您在尝试使用 autoit 和 vbs 时发现了哪些问题?
-
我想我会试试 c++ 库。也许我可以用 c# 创建一个包装器。我最喜欢使用 c#
标签: dll vbscript batch-file activex dllimport