Если вы делаете это, чтобы проверить, действительно ли документ загружен, есть лучший способ проверить это событие (т. Е. Объекты pDisp). Посмотрите на некоторые из моих ответов, связанных с веб-браузером.
так что вы хотите запустить разностный счетчик между NavComplete и DocComplete, однако, если вы это сделаете, это не сработает, так как NavComplete вызывается более одного раза на многих кадрах, поэтому вам нужно проверить посмотрите, является ли вызов NavComplete уникальным. В vb его просто сравнивая один объект с другим с помощью оператора Is, в C# я понимаю, что Is недоступен, поэтому вы просто выполняете обычное сравнение объектов.
Итак, вы сохраняете список всех объектов pDisp, которые опубликовал NavComplete, и перед добавлением каждого из них вы проверяете всю коллекцию, чтобы убедиться, что добавленный pDisp не был добавлен раньше (то есть: является уникальным), например: If pDisp Is pDispCollection(i) Then
и «i» - ваш счетчик прироста в вашем для каждого цикла.
Теперь pdisp, что сообщения DocComplete ВСЕГДА уникальны (так что вам не нужно беспокоиться о том, что они вызываются более одного раза для каждого нового/уникального pDisp), поэтому каждый раз, когда происходит pDisp, вы просто обнаруживаете, какой из них из коллекции, и удалите ее.
Как только вы находитесь в 0, вы знаете, что это верно закончилось :).
Есть и другие вещи, которые вам нужно протестировать, но это большой/важный важный и увеличит вашу точность большое время (гораздо больше, чем просто проверка на .busy и .readystate).
Дайте мне знать, как это сделать, или вам нужна дополнительная помощь.
Спасибо за подробное объяснение.Полезно также и распространение сверху вниз и продвижение по пути вверх по документу. – ide