私はWindowsで正常に動作するC#アプリを書いています。キーボードとマウスを制御し、現在開いているプログラムにキーストロークを送信します。
ただし、アプリケーションをLinuxに移植したいので、現在使用しているMouseKeyboardLibrary.dllを使用できません。Windows固有の処理を実行しています。
X11またはXorgのプログラムにキーボードとマウスの動きを簡単に送信できるライブラリはありますか?
私はすでに作られたものを見つけることができませんでした。しかし、私はあなたのための出発点を見つけました:xdotoolは、コマンドラインからマウスとキーボードを制御するプロジェクトです。オープンソースでもあるため、必要に応じて、C#で同じ機能をネイティブに(または必要に応じていくつかのP / Invokesを使用して)実装できます。
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);
}
}