title: C# get information about current active window
body: <p>I have an application which i want to run in the background. I want to get the executable name, for an example IExplorer.exe. I have played around with the following code:</p>
  
  <pre><code>[DllImport("user32.dll")]
  private static extern IntPtr GetForegroundWindow();
  
  [DllImport("user32.dll")]
  private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
  
  public static void Main()
  {
      int chars = 256;
      StringBuilder buff = new StringBuilder(chars);
      while (true)
      {
          // Obtain the handle of the active window.
          IntPtr handle = GetForegroundWindow();
  
          // Update the controls.
          if (GetWindowText(handle, buff, chars) &gt; 0)
          {
              Console.WriteLine(buff.ToString());
              Console.WriteLine(handle.ToString());
          }
          Thread.Sleep(1000);
      }
  }
  </code></pre>
  
  <p>That only gets me the Window title, and the handle ID. I want to get the executable name (and maybe more information).</p>
  
  <p>How do i achieve that?</p>