def set_focus
      if is_window?
        # if current process was the last to receive input, we can be sure that
        # SetForegroundWindow will be allowed.  Send the shift key to whatever has
        # the focus now.  This allows IRB to set_focus.
        keystroke(VK_SHIFT)
        ret = SetForegroundWindow(handle)
        logger.warn("SetForegroundWindow failed") if ret == 0
      end
    end
def set_focus
      if is_window?
        # if current process was the last to receive input, we can be sure that
        # SetForegroundWindow will be allowed.  Send the shift key to whatever has
        # the focus now.  This allows IRB to set_focus.
        keystroke(VK_SHIFT)
        ret = SetForegroundWindow(handle)
        logger.warn("SetForegroundWindow failed") if ret == 0
      end
    end
Brings the window into the foreground and activates it.
 Keyboard input is directed to the window, and various visual cues
 are changed for the user.

 A process can set the foreground window only if one of the following conditions is true:

    * The process is the foreground process.
    * The process was started by the foreground process.
    * The process received the last input event.
    * There is no foreground process.
    * The foreground process is being debugged.
    * The foreground is not locked.
    * The foreground lock time-out has expired.
    * No menus are active.

 @return [Number] nonzero number if sucessful, nil or zero if failed