Я пытаюсь открыть несколько веб-страниц в том же сеансе IE9. Кажется, что я должен подождать немного времени после открытия первого URL-адреса, прежде чем я смогу открыть остальные, но использование Thread.Sleep кажется хакерским. Есть ли способ, который я могу сделать лучше?Открыть несколько вкладок в IE9 с помощью процесса
foreach (string url in urls)
{
try
{
if (!isLaunched)
{
Process p = new Process();
p.StartInfo.FileName = browser;
p.StartInfo.Arguments = url;
p.Start();
Thread.Sleep(1000); // somewhere between 500 and 1000
isLaunched = true;
}
else
{
Process.Start(url);
}
}
}
Примечание: Если я не выжидают время, я в конечном итоге с одной сессии браузера с одной страницы (на последней странице
Update:. - Я попытался p.WaitForInputIdle() но он не работает - Per http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/fe4be58f-9c9d-4e52-8ced-e3cd9c1bbee7 Я также попытался
int i = 0;
while (i == 0)
{
Console.WriteLine("[email protected]!");
Thread.Sleep(100);
p.Refresh();
i = p.MainWindowHandle.ToInt32();
}
но получил сообщение об ошибке:.
Process has exited, so the requested information is not available.
at System.Diagnostics.Process.EnsureState(State state)
at System.Diagnostics.Process.get_MainWindowHandle()
Update2: Приведенный ниже код работает (ждет выхода IE9 для выхода), но по-прежнему требует Thread.Sleep (100). Любое меньше, и иногда оно только помещает часть сайтов вверх ... Нет ... царапины, это работает только в том случае, если уже есть сеанс IE. Процесс выходит из-за того, что он передает URL-адрес существующей сессии IE.
foreach (string url in urls)
{
try
{
if (!isLaunched)
{
Process p = new Process();
p.StartInfo.FileName = browser;
p.StartInfo.Arguments = url;
p.Start();
p.WaitForExit();
Thread.Sleep(100);
isLaunched = true;
}
else
{
Process.Start(url);
}
}
Не работает, если вы делаете Thread.Sleep любой короче, чем около 1000 мс, поэтому я думаю, что это все еще не так. (Что делать, если целевой компьютер работает очень медленно?) – tofutim
Я подозреваю, что ваша программа не имеет пользовательского интерфейса? –
Имеет ли значение, имеет ли Программа пользовательский интерфейс? – tofutim