0


以下は、win32apiを使用して左クリックを生成するための私のコードです。問題は、スタックしてメインに戻らないことです。Ctrl + cを押すと、メインに戻ります。しかし、私がそれを2回呼び出すと、ダブルクリックをシミュレートするためにそれは問題ありません。このコードに何か問題がありますか?ありがとうございました。

void LeftClick(void)
{  
  INPUT    Input={0};

  // left down 
  Input.type      = INPUT_MOUSE; /*The event is a mouse event. Use the mi structure of the union.*/
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTDOWN;
  SendInput(1,&Input,sizeof(INPUT));

  // left up
  ZeroMemory(&Input,sizeof(INPUT));
  Input.type      = INPUT_MOUSE;
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTUP;
  SendInput(1,&Input,sizeof(INPUT));
}
4

1 に答える 1

1

SendInputの使用に専念していない場合は、過去にWM_LBUTTONDOWNを使用して目的のhWndでSendMessageを使用し、次にWM_LBUTTONUPを使用して成功しました。

ほとんどのボタンは、キーボード入力によるクリックもシミュレートします。WM_KEYDOWNとwParamVK_SPACEを使用して目的のhWndにSendMessageを使用し、次にVK_SPACEを使用してWM_KEYUPを使用して、スペースバーのキー押下シミュレーションを完了することができます。

于 2011-03-28T16:43:38.763 に答える