重複の可能性:
C#でマウスの位置を取得する
周辺機器、たとえば、ポートの1つでマウスを模倣し、ディスプレイの(x、y)にクリックを送信できるプログラムを作成することは可能ですか?
重複の可能性:
C#でマウスの位置を取得する
周辺機器、たとえば、ポートの1つでマウスを模倣し、ディスプレイの(x、y)にクリックを送信できるプログラムを作成することは可能ですか?
はい、できます。私は何年も前にNUnitForms用のMouseControllerを作成しました。http://nunitforms.sourceforge.net/をチェックしてください
マウスコントローラーのソースコードはhttp://nunitforms.svn.sourceforge.net/viewvc/nunitforms/trunk/nunitforms/source/NUnitForms/MouseController.cs?revision=32&view=markupにあります。
重要なのは、Win32関数SendInputを使用することです。http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx
SendInput関数は、入力として共用体を取りますが、これはC#では簡単にサポートされていません。私が行ったことは、異なる入力構造体を指定するが同じ関数を呼び出す2つの関数SendMouseInputとSendKeyboardInputを定義することです。
[DllImport("user32.dll", EntryPoint="SendInput", SetLastError=true)]
internal static extern int SendMouseInput(int cInputs, ref MOUSEINPUT pInputs, int cbSize);
[DllImport("user32.dll", EntryPoint="SendInput", SetLastError=true)]
internal static extern int SendKeyboardInput(int cInputs, ref KEYBDINPUT pInputs, int cbSize);