0
特定のキーが押されたときにマウスのクリックをシミュレートしようとしています。マウスをシミュレートするキーが押されたときにクリックします。
が、私はこれを試してみました:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x08;
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Insert:
Point pt = Cursor.Position;
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;
mouse_event(MOUSEEVENTF_RIGHTDOWN, X, Y, 0, 0);
break;
}
それは動作しているようだしない、と私は他の解決策を見つけることができませんでした。
アプリケーションがフォアグラウンドにある場合にのみ呼び出されますイベント。それはあなたの意図ですか? – SimpleVar
クリックをシミュレートするには、おそらく 'MOUSEEVENTF_RIGHTDOWN'の後に' MOUSEEVENTF_RIGHTUP'を実行する必要があります。そして、上のものは '0x08'の代わりに' 0x10'です – Jim
キーハンドラからマウスクリックハンドラメソッドを呼び出すことはできませんか?そうしなければならない特別な理由はありますか? –