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

这适用于对“应用”的第一次调用,但第二次调用会产生错误:“System.MissingMemberException:调用应用时出错。”。如果我使用“调用”而不是“应用”,也会出现此问题。但是,如果我将其中一个事件调用函数从“应用”更改为“调用”,它就会起作用 - 但如果我尝试在我的程序的同一实例中再次调用此代码,它会引发相同的异常。简而言之-除非我重新启动程序,否则我不能多次使用“应用”或“呼叫”。

此问题仅在 Windows XP+IE8 中出现。如果我在 Windows7+IE9 中尝试,我可以根据需要多次使用“应用”/“调用”。

我可以做些什么来让我多次使用“apply”/“call”,或者以任何其他方式调用事件?

4

1 回答 1

0

好的,我通过从命令行(又名“导航”)通过 JavaScript 调用事件来管理解决方法,但我仍然认为应该有一个基于 COM(互操作?)的解决方案......

于 2011-08-04T00:36:29.450 回答