title: Start ms-screenclip through explorer and get a handle or wait for exit
body: <p>how can I start Windows 10's latest screen snipping tool (<strong>&quot;ms-screenclip:&quot;</strong> or shortcut Windows + Shift + S) and <strong>either get a handle</strong> to check or <strong>wait until it's closed</strong> again.</p>
  <p>.net native</p>
  <pre><code>Process.Start(&quot;ms-screenclip:)
  </code></pre>
  <p>does start the application but <strong>returns an empty process object</strong>. I guess due to the executing application already running.</p>
  <p>ShellExecute API does work</p>
  <pre><code>ShellExecute(Nothing, &quot;open&quot;, &quot;explorer.exe&quot;,&quot;ms-screenclip:&quot;, Nothing, 1)
  </code></pre>
  <p>but <strong>neither returns a handle</strong></p>
  <p>ShellExecuteEx also runs but I don't know how to return the handle:</p>
  <pre><code>&lt;Runtime.InteropServices.DllImport(&quot;shell32.dll&quot;, CharSet:=Runtime.InteropServices.CharSet.Auto)&gt;
  Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As IntPtr
  End Function
  
  
  &lt;StructLayout(LayoutKind.Sequential)&gt;
  Public Structure SHELLEXECUTEINFO
      Public cbSize As Integer
      Public fMask As UInteger
      Public hwnd As IntPtr
      &lt;MarshalAs(UnmanagedType.LPTStr)&gt;
      Public lpVerb As String
      &lt;MarshalAs(UnmanagedType.LPTStr)&gt;
      Public lpFile As String
      &lt;MarshalAs(UnmanagedType.LPTStr)&gt;
      Public lpParameters As String
      &lt;MarshalAs(UnmanagedType.LPTStr)&gt;
      Public lpDirectory As String
      Public nShow As Integer
      Public hInstApp As IntPtr
      Public lpIDList As IntPtr
      &lt;MarshalAs(UnmanagedType.LPTStr)&gt;
      Public lpClass As String
      Public hkeyClass As IntPtr
      Public dwHotKey As UInteger
      Public hIcon As IntPtr
      Public hProcess As IntPtr
  End Structure
  </code></pre>
  <p>Am I missing something important?</p>
  <p>Thank you.</p>