Создайте объект из dll, затем вызовите метод - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь вызвать некоторые методы из библиотеки 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, и при его использовании я получаю предупреждение enter image description here.

Если я использую Internet Explorer и включаю заблокированный контент, я могу выполнить метод SendAction в библиотеке ahscript.dll.

Я бы хотел запустить это и в других браузерах, поэтому было бы неплохо, если бы я смог создать файл .bat, который позволил бы мне сделать то же самое. Или скрипт VBS. Или любой другой сценарий ...

если по какой-то причине вы знаете AutoIt, вот что я попробовал с ним:

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 у меня есть нечто подобное.

Как я могу создать исполняемый файл, чтобы при его выполнении я мог получить тот же результат, что если я открою html-файл в Internet Explorer, включу предупреждение и, наконец, выполним функцию javascrip?

1 Ответ

1 голос
/ 04 августа 2011

Извините, вам не повезло.

Во-первых, ActiveXObject относится только к Internet Explorer. Firefox и Chrome не поддерживают его. Вы можете использовать специальные плагины для Firefox и Chrome , которые активируют вкладку IE, но это все еще IE.

Кроме того, ActiveX / COM относится только к Windows. Вы можете использовать ActiveX / COM из Wine , но он не поддерживается ни в одной другой ОС.

...