Я использую ::SendInput
послать событие щелчка мыши:Как использовать dwExtraInfo с SendInput
void LeftDown (LONG x_cord, LONG y_cord)
{
INPUT Input={0};
// left down
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN;
Input.mi.dx = x_cord;
Input.mi.dy = y_cord;
Input.mi.dwExtraInfo = 0x12345; //Is this how to use it?
::SendInput(1,&Input,sizeof(INPUT));
}
Я хочу, чтобы установить dwExtraInfo
в какой-то само определено значение и извлечь его в WndProc
в целевом приложении. Тогда (к примеру) я буду игнорировать этот щелчок, если dwExtraInfo
установлен какое-то конкретное значение:
LRESULT CALLBACK OSRWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_LBUTTONDOWN)
{
if(GetMessageExtraInfo() == 0x12345) //Is this how to use it?
//ignore
else
//do something
}
}
Является ли это наивный способ надлежащим образом использовать dwExtraInfo
или есть лучшая практика? Благодаря!
Это неизменно терпит неудачу в том, «что, если две программы выполняют этот« тест на здравомыслие ». –
@ HansPassant Что вы имеете в виду? – Sanich
Если на компьютере запущена другая программа, которая также вводит ввод и использует dwExtraInfo для передачи информации, то ваш крючок просто не может больше сказать, что это означает. Это более распространено, чем вы думаете, кстати, google 0xFF515700, чтобы увидеть, какие проблемы надвигаются. Таким образом, он, вероятно, отлично работает на вашей машине, но вы не знаете, что может случиться с другим. –