Avatar billede mutalisk Nybegynder
26. april 2006 - 20:54 Der er 9 kommentarer og
1 løsning

Mouse Click

Hey, er der en måde jeg kan få C# til at lave et mouse click? - Altså ligesom hvis der rigtigt blev trykket på musen..
Avatar billede Slettet bruger
26. april 2006 - 21:40 #1
[DllImport("user32.dll")] private static extern void GetCursorPos(out Point p);
[DllImport("user32.dll")] private static extern void SetCursorPos(int X, int Y);
[DllImport("user32.dll")] private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);

public void MouseMove(int X, int Y)
        {
            SetCursorPos(X, Y);
        }


public void MouseRightClick()
        {
            Point p = Point.Empty;
            GetCursorPos(out p);

            int X = p.X;
            int Y = p.Y;

            mouse_event(0x8000 | 0x0008, X, Y, 0, 0);
            mouse_event(0x8000 | 0x0010, X, Y, 0, 0);
        }



Hversågod ;)
Avatar billede coderdk Praktikant
26. april 2006 - 21:41 #2
Det kan du med P/Invoke og SendInput

http://www.pinvoke.net/default.aspx/user32/SendInput.html
Avatar billede Slettet bruger
26. april 2006 - 21:41 #3
//Left mouse down = 0x0002
//Left mouse up = 0x0004
//Right mouse down = 0x0008
//Right mouse up = 0x0010
//Absolute position = 0x8000



public void MouseLeftClick()
        {
            Point p = Point.Empty;
            GetCursorPos(out p);

            int X = p.X;
            int Y = p.Y;

            mouse_event(0x8000 | 0x0002, X, Y, 0, 0);
            mouse_event(0x8000 | 0x0004, X, Y, 0, 0);
        }
Avatar billede mutalisk Nybegynder
26. april 2006 - 22:05 #4
Hvor skal jeg ligge user32.dll for at få det til at fungere?

Og skal jeg ikke have f.eks. MouseLeftClick(); ind i min Main, for at få den til at køre den?
Avatar billede Slettet bruger
26. april 2006 - 22:25 #5
du skal ikke ligge user32.dll nogen steder, det er en fil der ligger i windows..

MouseLeftClick() skal du bare køre jo, så klikker den hvor curseren nu er på skærmen
Avatar billede innercitydk Nybegynder
26. april 2006 - 23:05 #6
I dit program har du vel en eventhandler der fanger når der klikkes på en knap. Den event kan du vel selv programmatisk sætte igang uden at der nødvendigvis er klikket på knappen. Alternativt kan du jo bare lave en metode med samme parametre og værdier du så selv starter når det er aktuelt..
Avatar billede casualty Nybegynder
27. april 2006 - 08:38 #7
innercitydk >> Men det vil kun virker indenfor hans app. Hvis han vil udføre et klik uanset hvilken applikation curseren står i skal han ud i wb-freekill´s eksempel
Avatar billede innercitydk Nybegynder
27. april 2006 - 09:18 #8
Det er rigtigt. Det tænkte jeg ikke lige på.
Avatar billede mutalisk Nybegynder
28. april 2006 - 18:57 #9
Tak for hjælpen, send et svar wb-freekill
Avatar billede Slettet bruger
28. april 2006 - 19:47 #10
svar:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester