, поэтому добавление улучшений в существующий код. Прямо сейчас открываются окна IE для навигации по определенным сайтам
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = Configuration.IExplorerLocation();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = url;
// Start the process with the info we specified.
Process exeProcess = Process.Start(startInfo);
так что теперь клиент хочет, чтобы мы закрыли это окно, если они попытаются нажать на ту же кнопку навигации в пользовательском интерфейсе. Поэтому мне нужно что-то подержать, чтобы закрыть это позже, если они попытаются снова. Я сохранил ручку, идентификатор процесса и т. Д., Чтобы попытаться закрыть позже, но, похоже, тогда понятия не имею, что окно существует. Я думаю, что часть моей проблемы может заключаться в том, что IE вроде имеет основной PID, и любые новые окна получают новые PID, но я сохраняю PID, который я только что создал, и через 50 мс он не знает, что существует, чтобы закрыть его ... используя этот код
log.Info(fn + "parse -" + _iNypIEProcessIdName);
string[] ProcData = _iNypIEProcessIdName.Split('-');
int ProcId = 0;
log.Info(fn + " "+ ProcData[0]);
Int32.TryParse(ProcData[0], out ProcId);
//Process exeProcess as new Process;
Process CheckProcess = null;
log.Info(fn + "2");
try
{
CheckProcess = Process.GetProcessById(ProcId);
}
catch (Exception e)
{
log.Error(fn + " iNYP process not found to remove ", e);
}
if (CheckProcess.ProcessName == ProcData[1])
{
// then I think we have a match ??
log.Debug(fn + " Attempting to close ID" + ProcId + " " + ProcData[1]);
CheckProcess.Close();
}
так что не уверен, что мой код неправильный ... но я думаю, что я больше ищу хороший способ открыть процесс ... получить некоторую информацию о нем, которую я позже смогу использовать, чтобы закрыть его, если они попытаются к NAV, чтобы в значительной степени тот же URL. Должен ли я просто перебрать все существующие окна IE и найти тот же URL и закрыть? Я просто подумал, что попытка получить ручку или PID будет чище ... и примечание, когда я пытаюсь получить ручку после запуска процесса, окно не полностью поднято, а ручка - НОЛЬ ... поэтому любые советы приветствуются !! !