Какой правильный способ имитировать щелчок мыши, не влияя на физическую мышь в Windows?C#

Место общения программистов C#
Ответить
Anonymous
 Какой правильный способ имитировать щелчок мыши, не влияя на физическую мышь в Windows?

Сообщение Anonymous »

Какой правильный способ программно моделировать правой кнопкой мыши (вниз и вверх) в центре экрана в ОС 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(&currentPos);

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»