Ik ben bezig met een programma die automatisch muiskliks voor mij uit moet kunnen voeren. Het betreft een bot die BlackJack voor mij moet gaan spelen.
Het probleem waar ik nu tegenaan loop is dat de applicatie in kwestie (ConnectToCasino) het niet doorheeft als ik een muisklik simuleer. Dit terwijl bijvoorbeeld mijn buroblad dat _wel_ doorheeft. Hier is een stukje van de code in de User32 class (zelf geschreven).
Hoe kan het dat ik op mijn buroblad WEL een klik kan uitvoeren, maar in dat venster niet?
Het probleem waar ik nu tegenaan loop is dat de applicatie in kwestie (ConnectToCasino) het niet doorheeft als ik een muisklik simuleer. Dit terwijl bijvoorbeeld mijn buroblad dat _wel_ doorheeft. Hier is een stukje van de code in de User32 class (zelf geschreven).
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public static void click(int handle, Point p){ //get the DC of the handle int dc = User32.getDC(handle); //get the coordinates of the screen Point rect = User32.getWindowRect(handle); //store cursor position Point oldPos = Cursor.Position; //set cursor position Cursor.Position = new Point(rect.X + p.X, rect.Y + p.Y); //Press mouse mouse_event(User32.MouseEventLeftDown, 0, 0, 0, new System.IntPtr()); //Release Mouse mouse_event(User32.MouseEventLeftUp, 0, 0, 0, new System.IntPtr()); //reload old position Cursor.Position = oldPos; } private const UInt32 MouseEventLeftDown = 0x0002; private const UInt32 MouseEventLeftUp = 0x0004; private const UInt32 MouseEventMove = 0x0001; private const UInt32 MouseEventAbsolute = 0x8000; [DllImport("user32.dll")] private static extern void mouse_event(UInt32 dwFlags, int dx, int dy, UInt32 dwData, IntPtr dwExtraInfo); |
Hoe kan het dat ik op mijn buroblad WEL een klik kan uitvoeren, maar in dat venster niet?