Я пытаюсь автоматизировать ie.This мой код, чтобы поймать то есть окноизвлечения класса ком завода для компонента с CLSID {9ba05972-f6a8-11cf-a442-00a0c90a8f39} не удалось из-за следующей ошибки: 80040154
ProcessStartInfo psi = new ProcessStartInfo();
psi.CreateNoWindow = false;
psi.FileName = "IExplore.exe";
psi.Arguments = "-nomerge about:blank ";
psi.WindowStyle = ProcessWindowStyle.Normal;
Process p = new Process();
p.StartInfo = psi;
if (p.Start())
{
int maxWait = 10000, wait = 0;
while (!p.HasExited && (p.MainWindowHandle == IntPtr.Zero))
{
wait += 10;
Thread.Sleep(10);
p.Refresh();
if (wait > maxWait) break;
}
wait = 0;
while (!p.HasExited && (_IE == null))
{
_IE = null;
ShellWindows m_IEFoundBrowsers = new ShellWindowsClass();//here i get exception
foreach (InternetExplorer Browser in m_IEFoundBrowsers)
{
if (Browser.HWND == (int)p.MainWindowHandle)
{
_IE = Browser;
break;
}
}
if ((_IE != null) || (wait > maxWait)) break;
else
{
wait += 10;
Thread.Sleep(10);
}
}
if (_IE != null)
{
IE.Visible = true;
IE.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(IE_DocumentComplete);
}
else
{
Console.WriteLine("Problem opening IE!");
}
}
Этот код работает нормально, но когда я пытаюсь запустить приложение через remoteapp, тогда я получаю исключение. Я думаю, что причина связана с некоторым доступом, но не уверен, что делать. пожалуйста, помогите
У вас есть дополнительная информация об исключении, которое вы получаете? Пожалуйста, отредактируйте сообщение и включите их. – Andrew
Нет, это единственная ошибка, которую я получаю. Небольшое экспериментирование. Я обнаружил, что эта ошибка обычно возникает, когда программа dnt находит какой-либо браузер открытым. Так что мое предположение связано с проблемой прав доступа во время remoteapp, которую невозможно уловить, т.е. окно –
Я запускаю приложение на сервере Windows 2008 r2. Я проверил все упрощения и групповую политику, все в порядке –