<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi,<br>
    <br>
    Question: <br>
    Is System.Windows.Forms.SendKeys implemented and working on Ubuntu
    Linux ?<br>
    <br>
    I try to control JD-GUI with it, but the keys don't arrive, neither
    do they arrive in gedit.<br>
    They do arrive in Notepad on Windows using the same program, and
    they work with JD-GUI on Windows, using the same program. <br>
    <br>
    Or does it need any library installed, such as XTest/XFakeEvent ?<br>
    <br>
    <br>
    And BTW, Microsoft.VisualBasic.Interaction.AppActivate("Window
    Title") throws not implemented...<br>
    <br>
    You can use the functions:<br>
         static Window FindWindow(Window top, char *name)<br>
         static void GetFocusedWindow(void)<br>
    From xvkbd -&gt; in file xvkbd.c<br>
    Basically, all you need to do is save the mouse position, find the
    target window position &amp; rectangle, and press the left
    mousebutton somewhere on it with mousedown &amp; mouseup via
    xsendevent, then restore the mouse position.<br>
    <br>
    I can supply left + right mousedown + mouseup,<br>
    I have appended cMouse.cs and the dependencies: XorgAPI +
    XorgStructs.<br>
    <br>
    And when I loop through all processes, as shown below, I don't get a
    WindowTitle anywhere...<br>
    (using mono 2.10.1 on Ubuntu)<br>
    <small>--------------------------------------------</small><br>
    <br>
            public void GetProcesses()<br>
            { <br>
                System.Diagnostics.Process[] processlist =
    System.Diagnostics.Process.GetProcesses();<br>
    <br>
                string str = "";<br>
                foreach(System.Diagnostics.Process theprocess in
    processlist)<br>
                {<br>
                    Console.WriteLine("Process: {0} ID: {1} WindowTitle:
    {2}", theprocess.ProcessName, theprocess.Id,
    theprocess.MainWindowTitle);<br>
                    str += string.Format("Process: {0} ID: {1}
    WindowTitle: {2}", theprocess.ProcessName, theprocess.Id,
    theprocess.MainWindowTitle);<br>
                    str += Environment.NewLine;<br>
                }<br>
                MessageBox.Show(str);<br>
            }<br>
    <br>
    <small>--------------------------------------------</small><br>
    <br>
  </body>
</html>