Wie zum ausführen von Outlook mit der Prozess.Start("outlook.exe") und erhalten Sie die Kontrolle zurück

Mein C# - Programm benötigt zum starten von Office Outlook und Holen Sie sich die aktuellen "running outlook-Anwendung".
Um dies zu tun, habe ich realisiert das folgende einfache Programm (also, wenn Sie wollen, können Sie testen Sie es einfach):

using Outlook = Microsoft.Office.Interop.Outlook;
using System.Runtime.InteropServices;

static void Main(string[] args)
{
  Outlook.Application outlookObj = null;

  if (Process.GetProcessesByName("OUTLOOK").Count().Equals(0))
  {
    Process.Start("outlook.exe"); //MY PROGRAM STOPS HERE
  }
  var process = Process.GetProcessesByName("OUTLOOK").First();
  while (!process.HasExited)
  {
    try
    {
      outlookObj = (Outlook.Application)Marshal.GetActiveObject("Outlook.Application");
      break;
    }
    catch
    {
      outlookObj = null;
    }
    System.Threading.Thread.Sleep(10);
  }

  string result = (outlookObj== null)? "DOES NOT WORK" : "OK";
  Console.WriteLine(result);
  Console.ReadLine();
}

Mein problem ist, dass sobald Office Outlook gestartet wird, läuft dann mein C# - Konsolenanwendung nicht weiter seinen job. Nach der Process.Start("outlook.exe"); Anweisung ausgeführt wird, muss ich dann auf auf der Visual Studio-GUI, um die Konsole neu starten, Anwendung und schließlich Lesen Sie "OK" auf meiner Konsole-Anwendung.

Wie kann ich mein problem lösen?

InformationsquelleAutor baru | 2014-12-11
Schreibe einen Kommentar