![]() |
Получить id процесса COM объекта (C#)
Пишу на c#, через COM запускаю IE
IE = new SHDocVw.InternetExplorer(); Проблема в том что завершение работы браузера через IE.Quit() не всегда происходит коректно, иногда окно всеравно не закрывается, например в случае когда выскакивает какое либо диалоговое окно на сайте. Вопрос в следуюшем как получить id процесса который создается при запуске IE? используя его хочу убивать IE |
http://msdn.microsoft.com/en-us/library/ms633522.aspx если я понял что ты спрашиваеш
|
IE = new SHDocVw.InternetExplorer();
у этого объекта должен быть handle. дальше Process.GetProcessByName("iexplore").First(a => a.Id == IE.Handle).Kill() |
Цитата:
|
IE.HWND и a.Id это разные вещи, а подвисший IE через Kill() не убивается, его нужно только с принудительным завершением
|
да посмотрел. Как вариант искать по заголовку.
a.MainForm.Title (что-то в таком духе) |
Цитата:
|
Цитата:
|
Может для реализации не подойдёт, но может проще делать через компонент WebBrowser?
|
проблема не в том как завершить процесс, а в том как получить его id
|
Цитата:
|
ну ты же его всёравно убиваешь. тогда в цикле при следующем GetProcessesByName ты получаешь id очередного процесса и т.д.
Edit:в дополнение к W!z@rD Код:
[DllImport("user32.dll", CharSet=CharSet.Auto, SetLastError=true)] |
работает много IE мне нужно убить только некоторые из них. Для этого нужно знать конкретные id, чтоб не все подряд рубить, а только то что надо
|
а не проще сделать тот же самое через бат? Оо чтоб гнал ие
|
| Время: 07:44 |