Программно перемещайте мышь в VMWare C # - PullRequest
2 голосов
/ 09 июня 2009

Я пишу игрушечное приложение, которое играет с курсором мыши, и пытаюсь перемещать его программно. Использование вызовов взаимодействия Cursor.Position = ... или Win32 нормально работает на обычной машине, но у меня возникают трудности с его установкой в ​​VMWare.

У кого-нибудь есть предложения?

EDIT

Для уточнения:

У меня есть небольшое приложение для создания оконных форм, которое я запустил внутри ВМ, на нем есть одна кнопка, при нажатии на которую предполагается перемещать курсор мыши внутри ВМ. Я использовал как метод Cursor.Position, так и подход, предложенный Wolf5 .

Ответы [ 3 ]

1 голос
/ 09 июня 2009

Не фокусируйте виртуальную машину с помощью настоящей мыши. Или удалите драйвер мыши VMWare, чтобы виртуальная машина не фокусировалась, если вы не нажмете внутри нее.

1 голос
/ 10 июня 2009

Я решил проблему.

В отчаянной попытке попробовать что-нибудь я наконец сдался и удалил драйвер мыши с ВМ. После перезагрузки моё игрушечное приложение работает.

Устройство было указано в качестве устройства указания VMWare, после перезагрузки оно становится «неизвестным устройством», но мышь все еще работает. Хотя я немного на стороне.

1 голос
/ 09 июня 2009

Попробуйте вместо этого:

[DllImport("user32", SetLastError = true)]
    private static extern int SetCursorPos(int x, int y);

    public static void SetMousePos(Point p) {
        SetMousePos(p.X, p.Y);
    }

    public static void SetMousePos(int x, int y) {
        SetCursorPos(x, y);
    }

Конечно, вам нужно убедиться, что VMWARE имеет фокус в первую очередь, поскольку он не может установить положение мыши вне VMWARE.

...