2010-03-18 8 views
2

J'ai un programme qui simule un clic de souris.Problème avec la souris virtuelle cliquez sur

code est quelque chose comme ceci:

[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); 
     } 

Ce code fonctionne parfaitement. Par exemple, j'appelle cette fonction toutes les 30 minutes. Mais si j'appuie sur WINKEY + L (Windows est verrouillé), seul le curseur est déplacé mais pas appuyé.

Des idées?

+0

Je pense que l'écran de connexion est dans un contexte d'affichage différent. Les clics de souris resteront avec le programme en cours d'exécution. – kenny

+0

Pourquoi simulez-vous exactement des clics de souris de toute façon? –

Répondre

4

L'écran de connexion sur Windows est conçu pour permettre l'automatisation et pas les clics de l'interface utilisateur, comme une caractéristique de sécurité, IIRC

Questions connexes