<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body text="#000000" bgcolor="#ffffff">
    To make a long mail short, that's incorrect.<br>
    <br>
    When you look at xvkbd-3.0, focus a window and simulate alt+f4, it
    closes, and with simulated alt + tab, it switches windows. <br>
    <br>
    Looking at its sources, it's not working with XSendEvent there
    however, it uses some magic in libxtst, which however, just all
    comes back to some wrapping around base X11 calls.<br>
    <br>
    I didn't look any closer at it, as I don't deem ALT+TAB and ALT+F4
    as important in respect to SendKeys.<br>
    Sending key combinations + key modifiers (ALT/CTRL) to other
    application however, is.<br>
    <br>
    Thus I attached fixme.c, a basic key dispatch implementation for
    Linux/X11 in C using XSendEvent.<br>
    It's probably still a bit buggy, especially in respect to
    "UNICODE"/KeyboardInternationalization (not really important in this
    respect IMHO). <br>
    I'll probably port it to CS next weekend.<br>
    <br>
    <br>
    Note that it also contains an AppActivate implementation for Linux !<br>
    (It doesn't yet switch to the appropriate workspace, but fixing that
    is rather simple, but unfortunately time-consuming, and as I don't
    need it, I have just commented that part out for now)<br>
    AppActivate for Windows is simple, just pinvoke SetActiveWindow.<span
      class="Apple-style-span" style="border-collapse: separate; color:
      rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      font-size: medium;"><span class="Apple-style-span"
        style="font-family: 'Segoe UI',Verdana,Arial; font-size: 13px;
        text-align: left;"><br>
      </span></span><br>
    I don't have a Mac, but the simplest way to activate a window there
    I found to be so easy I can implement it blindly:<br>
    <br>
    <br>
    [System.Runtime.InteropServices.DllImport("libc", EntryPoint =
    "system")]
<br>
    internal extern static int system(string strCommand);<br>
    <br>
    Note that in the below C snippet, one would still need to check for
    malicious \n\r or semicolons when the application title is being
    supplied as parameter.<br>
    -----<br>
    <br>
    #include &lt;stdio.h&gt;<br>
    #include &lt;stdlib.h&gt;<br>
    <br>
    <br>
    int main(int argc, char* argv[])<br>
    {<br>
    &nbsp;&nbsp;&nbsp; //
<a class="moz-txt-link-freetext" href="http://stackoverflow.com/questions/3313332/bringing-another-apps-window-to-front-on-mac-in-c">http://stackoverflow.com/questions/3313332/bringing-another-apps-window-to-front-on-mac-in-c</a><br>
    &nbsp;&nbsp;&nbsp; system("osascript -e \"tell application \\\"Address Book\\\" to
    activate\"");<br>
    &nbsp;&nbsp;&nbsp; return EXIT_SUCCESS;<br>
    }<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    On 03/17/2011 03:19 AM, Jonathan Pryor wrote:
    <blockquote cite="mid:3B7711D7-C723-464F-B123-985D40051B1A@vt.edu"
      type="cite">Now, what does X11 provide? A cursory glance shows
      XSendEvent:<br>
    </blockquote>
    <blockquote cite="mid:3B7711D7-C723-464F-B123-985D40051B1A@vt.edu"
      type="cite">
      <pre wrap="">        <a class="moz-txt-link-freetext" href="http://tronche.com/gui/x/xlib/event-handling/XSendEvent.html">http://tronche.com/gui/x/xlib/event-handling/XSendEvent.html</a>

This allows passing an XEvent, such as an XKeyEvent, to a given window.

Problem: In Windows, it's the operating system which handles the input, which thus allows OS "capturing" of Alt+Tab so that the active application is switched. In X11, XSendEvent() requires that you explicitly specify both the Display and Window that the event is being passed to. Consequently, there is NO MECHANISM to have Alt+Tab "captured" by the OS and thus change windows (even if Alt+Tab _will_ change windows when typed via the keyboard). This is because the WIndow Manager is grabbing Alt+Tab, but the Window Manager is a completely separate process, and there's not necessarily an easy way to grab the Display+Window for the Window Manager (which might not have a Window to begin with).
</pre>
    </blockquote>
    <br>
  </body>
</html>