2011-08-03 19 views
0

私は、SHDocVw DLLを使用してC#からInternet Explorerインスタンスを開いて操作しています。私はいくつかのテキストボックスのonkeyupイベントをアクティブにする必要があります。これは私が使用するコードです:「適用」または「呼び出し」機能を複数回使用することはできません

dynamic userNameTextBox=doc.getElementById(5749).getElementsByTagName("input")[0]; 
userNameTextBox.value=userName; 
userNameTextBox.onkeyup.apply(userNameTextBox); 


dynamic passwordTextBox=doc.getElementById(5750).getElementsByTagName("input")[0]; 
passwordTextBox.value=password; 
passwordTextBox.onkeyup.apply(passwordTextBox); 

これは、「適用」する最初の呼び出しのために動作しますが、2回目の呼び出しでエラーが発生した:「System.MissingMemberException:エラー起動している間は適用されます。」。この問題は、「適用」の代わりに「呼び出し」を使用する場合にも発生します。しかし、イベント呼び出し関数の1つを "適用"から "呼び出し"に変更すると、動作しますが、私のプログラムの同じインスタンスでこのコードを再度呼び出そうとすると、同じ例外がスローされます。 要するに、プログラムを再起動しない限り、「適用」または「呼び出し」を複数回使用することはできません。

この問題はWindows XP + IE8でのみ発生します。私がWindows7 + IE9で試してみると、「適用」/「呼び出し」を何度でも使うことができます。

「適用」/「呼び出し」を複数回使用したり、他の方法でイベントを呼び出すことができる何かがありますか?

答えて

0

OK、私は、コマンドライン(AKA「移動」)からJavaScriptでイベントを呼び出すことによって回避策を管理し、私はまだCOMがあるべきだと思う(相互運用機能?)、これに基づいたソリューション...

関連する問題