Какой правильный способ программно моделировать правой кнопкой мыши (вниз и вверх) в центре экрана в ОС Windows, не влияя на физическую мышь? Он не должен зависеть от окна, а «Sendmessage» или «postmessage»-просто отправить простой щелкну правой кнопкой мыши и щелкнуть правой кнопкой мыши в центре экрана, независимо от того, что там. Решение должно избежать перемещения курсора или использования «SendInput» для имитации кликов в текущем месте мыши. Создание поддельного спряжения через развитие на уровне ядра единственный подход, или есть лучший метод в C или C#?#include
void simulate_right_click_at_center() {
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
int centerX = screenWidth / 2;
int centerY = screenHeight / 2;
POINT currentPos;
GetCursorPos(¤tPos);
INPUT input[2] = {0};
input[0].type = INPUT_MOUSE;
input[0].mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
input[0].mi.dx = centerX * (65536 / screenWidth);
input[0].mi.dy = centerY * (65536 / screenHeight);
input[1].type = INPUT_MOUSE;
input[1].mi.dwFlags = MOUSEEVENTF_RIGHTUP;
input[1].mi.dx = centerX * (65536 / screenWidth);
input[1].mi.dy = centerY * (65536 / screenHeight);
SendInput(2, input, sizeof(INPUT));
SetCursorPos(currentPos.x, currentPos.y);
}
int main() {
simulate_right_click_at_center();
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... e-physical