Je cherche un moyen de faire bouger le curseur par du code et simuler un double clique. Jusqu'à maintenant y a plein de personne qui en parle sur le net mais
j'ai pas trouvé un bon code avec de vrai explication![]()
Je cherche un moyen de faire bouger le curseur par du code et simuler un double clique. Jusqu'à maintenant y a plein de personne qui en parle sur le net mais
j'ai pas trouvé un bon code avec de vrai explication![]()
Hmmm, quel est l'intérêt de faire bouger la souris et simuler des click ?
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
J'utilise UI Automation sur des composants et il se trouve que certain composant s n'ont pas été fait avec du winforms du coup ils n'ont pas le fameux AutomationID. Je susi obligé de passer par de vrai click pour pouvoir atteindre certains composants de mon interface
J'ai trouvé ce code sur internet qui ne marche pas. Les réponse dans le foruem sont cryptés. C'est vraiment anti-éthique![]()
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
41
42
43
44
45 public class User32 { private const uint WM_MOUSEFIRST = 0x0200; private const uint WM_MOUSEMOVE = 0x0200; private const uint WM_LBUTTONDOWN = 0x0201; private const uint WM_LBUTTONUP = 0x0202; private const uint WM_LBUTTONDBLCLK = 0x0203; private const uint WM_RBUTTONDOWN = 0x0204; private const uint WM_RBUTTONUP = 0x0205; private const uint WM_RBUTTONDBLCLK = 0x0206; private const uint WM_MBUTTONDOWN = 0x0207; private const uint WM_MBUTTONUP = 0x0208; private const uint WM_MBUTTONDBLCLK = 0x0209; public User32() { ///NO CONSTRUCTOR. all public methods are static. } [DllImport("User32.DLL")] public static extern int SendMessage( IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam ); public static void LeftClick(IntPtr handle) { SendMessage(window.Handle, WM_LBUTTONDOWN, 0, 0); SendMessage(window.Handle, WM_LBUTTONUP, 0, 0); } public static void MoveMouse(IntPtr handle, int x, int y) { SendMessage(handle, WM_MOUSEMOVE, (IntPtr)0, MakeLParam(x,y)); } static IntPtr MakeLParam(int LoWord, int HiWord) { return (IntPtr) ((HiWord << 16) | (LoWord & 0xffff)); } } }
Salut essaye cela :
Ce bout de code déplace la souris en 120,100 puis fait un click (Down puis Up)
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 [DllImport("user32.dll")] static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo); [DllImport("user32.dll")] static extern bool SetCursorPos(int X, int Y); [Flags] public enum MouseEventTFlags { LEFTDOWN = 0x00000002, LEFTUP = 0x00000004, MIDDLEDOWN = 0x00000020, MIDDLEUP = 0x00000040, MOVE = 0x00000001, ABSOLUTE = 0x00008000, RIGHTDOWN = 0x00000008, RIGHTUP = 0x00000010 } et par exemple SetCursorPos(120, 100); Thread.Sleep(100); mouse_event((uint)MouseEventTFlags.LEFTDOWN, 0, 0, 0, 0); Thread.Sleep(10); mouse_event((uint)MouseEventTFlags.LEFTUP, 0, 0, 0, 0);
Ca devrait t'aider non ?
The Monz, Toulouse
Merci beaucoup, je pense que cela sera utile pour beaucoup de personne.
You are![]()
![]()
Partager