Toon posts:

[C#] Programma laten klikken

Pagina: 1
Acties:
  • 372 views

Verwijderd

Topicstarter
Ik heb een programma geschreven in C# met een webbrowser control ingeplaatst.
In die webbrowser wordt een pagina geladen. Nu zou ik willen dat mijn programma automatisch klikt op een bepaalde plaats in die webbrowser control. Is dat mogelijk? Zoja hoe kan dat?

Ik heb hetvolgende gevonden na een lange zoektocht, maar helaas werkt dat niet.
Het programma moet draaien in vista.

code:
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace HLNCheat
{
    public partial class Form1 : Form
    {
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

        private const int MOUSEEVENTF_LEFTDOWN = 0x02;
        private const int MOUSEEVENTF_LEFTUP = 0x04;
        private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
        private const int MOUSEEVENTF_RIGHTUP = 0x10;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Refresh();
            webBrowser1.Focus();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Call the imported function with the cursor's current position
            int X = 350;
            int Y = 200;
            mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

        }
    }
}

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik weet niet precies wat je wilt, maar kan je niet makkelijker gewoon het juiste HTML element uit je webbrowser control ophalen en daar Click op aanroepen?

wat ik verder zo in de msdn zie bij deze functie is dit http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx
MOUSEEVENTF_ABSOLUTE
Specifies that the dx and dy parameters contain normalized absolute coordinates. If not set, those parameters contain relative data: the change in position since the last reported position. This flag can be set, or not set, regardless of what kind of mouse or mouse-like device, if any, is connected to the system. For further information about relative mouse motion, see the following Remarks section.

[ Voor 64% gewijzigd door Woy op 02-06-2008 13:53 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

ruikt naar wedstrijdvervalsing :p

  • Mr_Dark
  • Registratie: Januari 2003
  • Laatst online: 04-11 19:24

Mr_Dark

Gotta catch 'em all

Ik gebruik niet het standaard webbrowser object maar de MSHTML (AxWebBrowser)

C#:
1
2
3
BrowserDocument = (HTMLDocument)frmParent.TravianBrowser.Document;
HTMLInputElement ClickObject = (HTMLInputElement)BrowserDocument.all.item(browserObject, 0);
ClickObject.click();


browserObject is de naam van het element waar je op wilt klikken...

[ Voor 11% gewijzigd door Mr_Dark op 02-06-2008 13:58 ]


Verwijderd

Topicstarter
Ik wil klikken in een flash document, dus dat zal niet lukken

  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

code:
1
2
3
4
//verplaats je muis eerst
//gewoon zo
Cursor.Position = new Point(100, 100);
//of via de setcursorpos() api


wil je de x en y coordinaten als absolute waardes meegeven met mouse_move, dan moet je bij dwflags zeggen dat het een move is, zoiets:
code:
1
MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTDOWN


http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx

Als je je cheatertje voor spelletjes op www.hln.be af hebt, deel hem da eens :*)

[ Voor 63% gewijzigd door ? ? op 02-06-2008 15:32 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:13

Creepy

Tactical Espionage Splatterer

Oftewel: je download wat code, het werkt niet en vervolgens geef je aan ons door hoe het wel moet werken en of wij het ff willen fixen voor je? Zo werkt het hier niet. Het is hier de bedoeling om zelf te programmeren, niet om het ons hier te laten doen.

Ga er gewoon zelf mee aan de slag. Mocht je er echt niet uitkomen dan kan je een nieuwe topic openen. Geef dan in elk geval aan wat je nu zelf al hebt geprobeerd en wat daar niet mee lukte (voor de duidelijkheid: met je eigen code dus). Lees aub Programming Beleid - De Quickstart eens door zodat je weet wat we van je verwachten als je een topic opent. In deze vorm is het in elk geval niet de bedoeling.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.