title: How to create single instance WPF Application that restores the open window when an attempt is made to open another instance?
body: <p>Sorry it the title is hard to understand. I wasn't sure how to word it.</p>
  
  <p>I have an application that should only be allowed to run one instance per user session.
  If the user clicks to launch the application again, I want to bring the one already to focus.</p>
  
  <p>The window will likely have Visibility to collapsed.</p>
  
  <p>If it's visible I know I can use</p>
  
  <pre><code>if (IsIconic(hWnd))
  {
      ShowWindowAsync(hWnd, swRestore);
  }
  
  SetForegroundWindow(hWnd);
  </code></pre>
  
  <p>but if the window is collapsed, is there a way for me to bring it back to visible?</p>