/// <summary>Causes the <see cref="T:System.Diagnostics.Process" /> component to wait indefinitely for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop.</summary>
 /// <returns>true if the associated process has reached an idle state.</returns>
 /// <exception cref="T:System.InvalidOperationException">The process does not have a graphical interface.-or-An unknown error occurred. The process failed to enter an idle state.-or-The process has already exited. -or-No process is associated with this <see cref="T:System.Diagnostics.Process" /> object.</exception>
 public bool WaitForInputIdle()
 {
     try {
         return(OGProcess.WaitForInputIdle());
     } catch (InvalidOperationException) {
         return(false);
     }
 }
 /// <summary>Causes the <see cref="T:System.Diagnostics.Process" /> component to wait the specified number of milliseconds for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop.</summary>
 /// <returns>true if the associated process has reached an idle state; otherwise, false.</returns>
 /// <param name="milliseconds">A value of 1 to <see cref="F:System.Int32.MaxValue" /> that specifies the amount of time, in milliseconds, to wait for the associated process to become idle. A value of 0 specifies an immediate return, and a value of -1 specifies an infinite wait. </param>
 /// <exception cref="T:System.InvalidOperationException">The process does not have a graphical interface.-or-An unknown error occurred. The process failed to enter an idle state.-or-The process has already exited. -or-No process is associated with this <see cref="T:System.Diagnostics.Process" /> object.</exception>
 public bool WaitForInputIdle(int milliseconds)
 {
     try {
         return(OGProcess.WaitForInputIdle(milliseconds));
     } catch (InvalidOperationException) {
         return(false);
     }
 }