Проблема с виртуальным щелчком мыши - PullRequest
2 голосов
/ 18 марта 2010

У меня есть программа, которая имитирует щелчок мыши.

Код выглядит примерно так:

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

        private const int MOUSEEVENTF_LEFTDOWN = 0x02;
        private const int MOUSEEVENTF_LEFTUP = 0x04;

 public static void DoMouseClick(int x, int y)
        {
            Cursor.Position = new Point(x, y);
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, x, y, 0, 0);
        }

Этот код работает отлично. Например, я вызываю эту функцию каждые 30 минут. Но если я нажимаю WINKEY + L (Windows заблокирована), перемещается только курсор, но не нажимается.

Есть идеи?

1 Ответ

4 голосов
/ 18 марта 2010

Экран входа в систему Windows разработан таким образом, чтобы НЕ допускать щелчков и автоматизации пользовательского интерфейса, как функции безопасности, IIRC

...