2011-08-04 40 views
0

dllライブラリからいくつかのメソッドを呼び出そうとしています。私はJavaScriptとC++でいくつかの例を見つけました。dllからオブジェクトを作成し、メソッドを呼び出す

<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> 

あなたは、これが実行されますただ一つのJavaScript機能を備えた非常に簡単なHTMLページで見ることができるように:私は、そう私はJavaScriptの例のために働いているものをお見せしましょうC++を使用する方法がわかりませんリンクをクリックするとこのスクリプトの問題は、それがInternet Explorerでのみ動作し、それを使用するときに私はという警告が出るということです。

Internet Explorerを使用してブロックされたコンテンツを有効にすると、ahscript.dllライブラリでSendActionメソッドを実行できます。

これも他のブラウザでも実行したいので、同じことをするための.batファイルを作成することができればいいと思います。またはvbsスクリプト。

AutoIt:VBSで

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") 

私は似たTREID何かを持っているか、他のスクリプトが...あなたはここのAutoItを知っているいくつかの理由で

場合は、私はそれを試してみたものです。

私はインターネットエクスプローラでhtmlファイルを開く場所と警告を有効にし、最後にjavascrip関数を実行すると同じ結果が得られる実行可能ファイルを作成する方法はありますか?

+0

あなたのautoitとvbsの試行でどのような問題が見つかりましたか? –

+0

私はC++ライブラリを試してみると思います。たぶん私はC#でラッパーを作成することができます。私はC# –

答えて

1

申し訳ありませんが、あなたはここで不運です。

まず、ActiveXObjectはInternet Explorerに固有です。 FirefoxおよびChromeはサポートされていません。 IEタブを有効にするFirefoxChromeの特別なプラグインを使用できますが、それでもIEです。

さらに、ActiveX/COMはWindows固有のものです。 WineのActiveX/COMを使用できますが、ほかのOSではネイティブにサポートされていません。

関連する問題