bipbip2000 | 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 :
- [DllImport("coredll.dll" )]
- static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
- static void Main(string[] args)
- {
- Thread myThread;
- myThread = new Thread(new ThreadStart(MouseEvent));
- myThread.Start();
- }
- public static void MouseEvent()
- {
-
- Point p = new Point();
- for (int i = 0; i < 30; i++)
- {
- GetCursorPos(ref p);
- mouse_event((uint)MouseEventFlags.MOVE, (uint)p.X + 1, (uint)p.Y, 0, 0);
- Thread.Sleep(60000);
- }
- }
|
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 :
- [DllImport("coredll.dll", CharSet = CharSet.Auto, SetLastError = false)]
- static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
- private const int WM_MOUSEMOVE = 0x0200;
-
- static void Main(string[] args)
- {
- Thread myThread;
- WriteInFile("toto.txt", "test" );
- myThread = new Thread(new ThreadStart(MouseEvent));
- myThread.Start();
- }
- public static void MouseEvent()
- {
-
- Point p = new Point();
- for (int i = 0; i < 30; i++)
- {
- // Get a handle to the application.
- IntPtr windowHandle = FindWindow("TSSHELLWND", null);
- // Verify that it is a running process.
- if (windowHandle == IntPtr.Zero)
- {
- Console.WriteLine("Process is not running." );
- return;
- }
- else
- {
- SendMessage(windowHandle, WM_MOUSEMOVE, (IntPtr)1, (IntPtr)1);
- Thread.Sleep(60000);
- }
- }
- }
|
Si quelqu'un a une idée... qu'il me fasse signe Merci.
|