Я попытался найти ответ на этот вопрос ... Простите меня, если я упустил это.Как проверить с помощью C#, если Microsoft Outlook уже открыт?
Что я пытаюсь сделать, это автоматизировать отправку электронной почты. У меня есть все, что я хочу в этом коде, но код предполагает, что Outlook НЕ открыт.
Есть ли способ проверить, открыт ли Outlook, прежде чем он откроет другой экземпляр Outlook?
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\microsoft\\windows\\currentversion\\app paths\\OUTLOOK.EXE");
string path = (string)key.GetValue("Path");
if (path != null)
System.Diagnostics.Process.Start("OUTLOOK.EXE");
else
MessageBox.Show("There is no Outlook in this computer!", "SystemError", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
"код предполагает, что внешний вид не является открытым" <- что это значит? –
Вы можете использовать WMI -> select * из win32_process и проверить там свойство name, если вы не можете найти outlook.exe, вы можете его открыть. другим способом может быть [Process.GetProcessesByName] (https://msdn.microsoft.com/de-de/library/z3w4xdc9 (v = vs.110) .aspx) –
Жаль, что вы не настолько ясны, насколько это возможно. Я пытаюсь сказать, что этот код открывает экземпляр Outlook, даже если он уже открыт. То, что я пытаюсь сделать, это проверить, открыт ли Outlook перед открытием другого экземпляра. –