Mouse event toute les minutes

Mouse event toute les minutes - C#/.NET managed - Programmation

Marsh Posté le 01-04-2009 à 16:29:50    

Bonjour,
 
J'aimerai envoyer un mouvement de souris toutes les minutes sur une fenetre. En l'occurence sur le Mobile Remote Desktop qui après 10 minute sans action se ferme.
 
J'ai réussi a bouger la souris toute les minutes avec ce code :
 

Code :
  1. [DllImport("coredll.dll" )]
  2.         static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
  3.         static void Main(string[] args)
  4.         {
  5.             Thread myThread;
  6.             myThread = new Thread(new ThreadStart(MouseEvent));
  7.             myThread.Start();
  8.         }
  9.         public static void MouseEvent()
  10.         {
  11.            
  12.             Point p = new Point();
  13.             for (int i = 0; i < 30; i++)
  14.             {
  15.                     GetCursorPos(ref p);
  16.                     mouse_event((uint)MouseEventFlags.MOVE, (uint)p.X + 1, (uint)p.Y, 0, 0);
  17.                     Thread.Sleep(60000);
  18.             }
  19.         }


 
Le problème c'est qu'apparemment ça marche que pour une fenetre en premier plan. En tout cas, sur mon pda (Windows Mobile 6), le Remote desktop ne reçoit rien puisqu'au bout de 10 minute il se ferme  :??: .  
 
J'ai essayé une deuxième options sans succes:

Code :
  1. [DllImport("coredll.dll", CharSet = CharSet.Auto, SetLastError = false)]
  2.         static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
  3.         private const int WM_MOUSEMOVE = 0x0200;
  4.  
  5.         static void Main(string[] args)
  6.         {
  7.             Thread myThread;
  8.             WriteInFile("toto.txt", "test" );
  9.             myThread = new Thread(new ThreadStart(MouseEvent));
  10.             myThread.Start();
  11.         }
  12.         public static void MouseEvent()
  13.         {
  14.            
  15.             Point p = new Point();
  16.             for (int i = 0; i < 30; i++)
  17.             {
  18.                 // Get a handle to the application.  
  19.                 IntPtr windowHandle = FindWindow("TSSHELLWND", null);
  20.                 // Verify that it is a running process.
  21.                 if (windowHandle == IntPtr.Zero)
  22.                 {
  23.                     Console.WriteLine("Process is not running." );
  24.                     return;
  25.                 }
  26.                 else
  27.                 {
  28.                     SendMessage(windowHandle, WM_MOUSEMOVE, (IntPtr)1, (IntPtr)1);
  29.                     Thread.Sleep(60000);
  30.                 }
  31.             }
  32.         }


 
 
Si quelqu'un a une idée... qu'il me fasse signe  :)  
 
Merci.
 

Reply

Marsh Posté le 01-04-2009 à 16:29:50   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed