1

いくつかの調査の後、最終的に ActiveX オブジェクトが機能するようになりました。ミキサー コントロールの値が変更されたときに Windows メッセージを聞きたいと思います (メッセージ番号 = 977)。

問題は、クラスをクラス Form から継承させると、IE で動作しなくなり、Windows メッセージを聞く唯一の方法はフォームを介することです。

ICOMEvents および ICOMMethods インターフェイスにメソッドとイベントを追加するという漠然とした考えがありますが、これを行うためのより良い方法があるかどうか、またはそれが不可能かどうかを知りたいです。

Form から継承しない場合、私のクラスのサンプルはすべて正常に動作します!

{Guid("ECA5DD1D-096E-440c-BA6A-0118D3516AAA")} _
{ClassInterface(ClassInterfaceType.None)} _
{ComDefaultInterface(GetType(ICOMMethods))} _
{ComSourceInterfaces(GetType(ICOMEvents))} _
Public Class Class1
'When inherited, can not call any method in IE
Inherits System.Windows.Forms.Form 
Implements ICOMMethods

注: Windows フォーム コントロールを作成して ActiveX と互換性を持たせることはできません。クラス ライブラリである必要があります。

別の方法:タイマーを追加して、X秒ごとに音量レベルを確認することも考えていました...あまりきれいではありませんが、音量を確認するために必要なすべての方法(XP、Vista、および7)がすでにあるので、それほど苦痛ではありません。このアプローチまたは別のアプローチに関するコメントは非常に役立つ可能性があります。

Way2 : 非表示のウィンドウ フォームを作成する ?? (いくつかのテストを行いましたが、動作しません)

4

0 に答える 0