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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
[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 avec sendmessage sans succes:



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
[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.