Имитация нажатия и перетаскивания с помощью mouse_event () и SetCursorPos () для перемещения угла камеры в Google Street View - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь привязать макросы клавиш и мыши к специальному типу мыши в C ++ (используя WinUser.h).Я пытаюсь сделать конкретные привязки для Google Street View, используя в основном ярлыки.

Однако перемещение камеры вверх или вниз с помощью ярлыков невозможно, поэтому я использую функции мыши, такие как SetCursorPos () и mouse_event ().

Я написал функцию, которая позволяет имитировать щелчок мышью в направлении верхней части экрана и нижней части экрана, чтобы угол камеры менялся.Это работает, когда я в любом месте, кроме Google Street View.(Он успешно перетаскивает значки на моем рабочем столе, но не поворачивает угол камеры в Google Street View).

void SimulateMouseClicking(char c, int& posX, int& posY)
{   
    SetCursorPos(posX, posY);
    mouse_event(MOUSEEVENTF_LEFTDOWN, posX, posY, 0, 0);

    if (c == 'd') {

        posY += posY / 10;

    } else if (c == 'u') {

        posY -= posY / 10;

    }

    SetCursorPos(posX, posY);

}

void SimulateMouseReleasing(int& posX, int& posY) {

    mouse_event(MOUSEEVENTF_LEFTUP, posX, posY,0,0);

    posX = horizontal / 2;
    posY = vertical / 2;
}

void LookUp(bool activated)
{
    if (activated)
        SimulateMouseClicking('u', posInitX, posInitY);
    else
        SimulateMouseReleasing(posInitX, posInitY);
}

void LookDown(bool activated)
{
    if (activated)
        SimulateMouseClicking('d', posInitX, posInitY);
    else
        SimulateMouseReleasing(posInitX, posInitY);
}

Моя функция работает, когда я в любом месте, кроме Google Street View.(Он успешно перетаскивает значки на моем рабочем столе, но не поворачивает угол камеры в Google Street View).Я хочу, чтобы эта камера двигалась, очевидно.

Заранее спасибо!

...