0

重複の可能性:
C#でマウスの位置を取得する

周辺機器、たとえば、ポートの1つでマウスを模倣し、ディスプレイの(x、y)にクリックを送信できるプログラムを作成することは可能ですか?

4

1 に答える 1

0

はい、できます。私は何年も前に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);
于 2012-07-18T04:26:59.983 に答える