質問

同僚と私は、ページ上の Web カメラを操作するためにアクティブ X コントロールを使用しなければならないという厄介な状況に遭遇しました。

Active X コントロールのボタンに JavaScript イベント ハンドラーを割り当てて、クリックされたときにページ上でアクションを起動することは可能ですか、それとも、Active X コントロールを操作するボタンを HTML ページ自体に作成する必要がありますか?次に、ページ上で必要なアクションを実行できますか?

役に立ちましたか?

解決

お願いします 既存の ActiveX コントロールを使用するだけです。Flash や Silverlight のようなものです。Flash には Web カメラのサポートが組み込まれており、JavaScript 経由で制御できます。Silverlight にはカメラのサポートが組み込まれていませんが、JavaScript の統合は素晴らしいです。

自分で記述する必要がある場合でも、心配する必要はありません。JavaScript と対話させるのは簡単です。ただ暴露すればいいだけです IDispatch インターフェース。

イベントについては、次のことを学ぶ必要があります。 接続ポイント.

他のヒント

はい!C++/ActiveX ランドでイベントをスローすると、JavaScript コードでイベント ハンドラー関数が実行されます。JavaScript と CSS を介してすべての GUI 作業を実行する、ボタンや視覚的なフィードバックのない、非表示の ActiveX コントロール全体 (ページの背景と同じ色) を作成することもできました。

編集:フランクのアドバイスは正しいです。 イベントのスクリプト作成に関するリンクは次のとおりです。

私の戦略は、ブラウザで更新を強制したい場合に、MyUpdate という C++ 関数 (IConnectionPoint を実装) を呼び出すことでした。

(また、JavaScript コードが ActiveX コントロールのメソッドを呼び出すことによって C++ ランドにコールバックされる場合があるため、Fire_MyUpdate メソッドで Windows メッセージをポンプするようにしました。これにより、ブラウザのフリーズが回避され、JavaScript GUI の応答性が確保されます。「キャンセル」ボタンの場合。)

ブラウザ側の JavaScript コードには、オブジェクトを参照するグローバル変数、「::」、その後にメソッド名が続きます。

function Uploader::MyUpdate()
{
    // ... code to fetch the current state of various
    // properties from the Uploader object and do something with it
    // for example check Uploader.IsActive and show or hide an HTML div
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top