Управление мышью и клавиатурой из C # Mono в Linux - PullRequest
1 голос
/ 19 октября 2011

Я пишу приложение на C #, которое отлично работает в Windows. Он управляет клавиатурой и мышью и отправляет нажатия клавиш открытой в данный момент программе.

Тем не менее, я хочу перенести свое приложение на Linux, и поэтому я не могу использовать MouseKeyboardLibrary.dll, которую я в настоящее время использую, делает очень специфичные для Windows вещи.

Существует ли библиотека, которая позволяет мне легко отправлять движения клавиатуры и мыши в программу на X11 или Xorg?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018
    public static bool LinuxOS
    {
        get { return Path.DirectorySeparatorChar == '/'; }
    }

    public static void SendKeys(String output)
    {
        if (LinuxOS)
        {
            var args = "";
            switch (output)
            {
                case "{RIGHT}":
                    args = "key Right";
                    break;
                case "{LEFT}":
                    args = "key Left";
                    break;
                default:
                    if (output.StartsWith("{") && output.EndsWith("}"))
                        output = output.Substring(1, output.Length - 2);

                    args = "type \"" + output + "\"";
                    break;
            }

            var proc = new Process
                       {
                               StartInfo =
                               {
                                       FileName = "xdotool",
                                       Arguments = args,
                                       UseShellExecute = false,
                                       RedirectStandardError = false,
                                       RedirectStandardInput = false,
                                       RedirectStandardOutput = false
                               }
                       };
            proc.Start();
        }
        else
        {
            System.Windows.Forms.SendKeys.Send(output);
        }
    }
0 голосов
/ 19 октября 2011

Я не смог найти ничего уже сделанного.Но я нашел для вас отправную точку: xdotool - это проект для управления мышью и клавиатурой из командной строки.Это также открытый исходный код, поэтому, если вы хотите, вы можете реализовать ту же самую функциональность изначально (или с несколькими вызовами P / Invoces, если требуется) в C #.

...