Pohyb s myší – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pohyb s myší – .NET – Fórum – Programujte.comPohyb s myší – .NET – Fórum – Programujte.com

 

radar.sm
~ Anonymní uživatel
13 příspěvků
24. 7. 2010   #1
-
0
-

zdravim..Měl bych dotaz jak, tedy jestli to vubec jde pohybovat myši. Jedna se o to ze po seriove lince by me prisli dadat a ja bych potreboval podle nich pohybovat myší. Dělam ve VS c# 2008 a jsem docela zacatečník.
Moc děkuju za rady.

Nahlásit jako SPAM
IP: 86.61.246.–
RePRO0
Super člen
24. 7. 2010   #2
-
0
-

Událost?

        private void TvujFormular_MouseMove(object sender, MouseEventArgs e)

{
labelPoziceX.Text = e.X.ToString();
labelPoziceY.Text = e.Y.ToString();
}

Nahlásit jako SPAM
IP: 83.240.104.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
velurex0
Stálý člen
24. 7. 2010   #3
-
0
-
Nahlásit jako SPAM
IP: 213.191.119.–
radar.sm
~ Anonymní uživatel
13 příspěvků
25. 7. 2010   #4
-
0
-

Tohle me ale vypisuje asi souradnice mysi kde je na tom programu. Ale ja ych potreboval uplnej opak aby se me mys presunula tam kam chci..kamkoli na celej ploše a nejlip aby to fungovalo i kdys pak ten program budu mit shozenej treba na liste a budu nekde jinde.
Zatim moc dik:)

Nahlásit jako SPAM
IP: 86.61.246.–
KIIV
~ Moderátor
+43
God of flame
25. 7. 2010   #5
-
0
-

nechapu co je tezkyho na tom, napsat do google: set mouse position C#

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
radar.sm
~ Anonymní uživatel
13 příspěvků
25. 7. 2010   #6
-
0
-

A pro bych prosim potreboval poradit. Jakym prikazem..nastavim mys na mnou uršené souřadnice:)
Jsem začátečník noo...
Dííky.

Nahlásit jako SPAM
IP: 86.61.246.–
KIIV
~ Moderátor
+43
God of flame
25. 7. 2010   #7
-
0
-

Cursor.Position = new Point(X, Y);

pry to jde takhle.. hned druhej odkaz google

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
radar.sm
~ Anonymní uživatel
13 příspěvků
25. 7. 2010   #8
-
0
-

ooo parada diik. To ja to hledal ale asi blbe;)
Mooc dik

Nahlásit jako SPAM
IP: 86.61.246.–
radar.sm
~ Anonymní uživatel
13 příspěvků
25. 7. 2010   #9
-
0
-

jestě bych mel jednu otazecku, ale z jinyho soudku.
Kam mam zapsat promeny abych s nema moh kdekoli pak jinde pracovat.
Potrebuju tohle, zapnu program a kurzor me skoci na stred oprazovky. A po prijmu teh dat s nim budu pohybovat.
Proste aby me vzdycky znova nenacet tu hodnotu toho stredu? :)

Nahlásit jako SPAM
IP: 86.61.246.–
RePRO0
Super člen
25. 7. 2010   #10
-
0
-

Na to, že mám dost chápací schopnosti, tak tohle jde mimo mísu. Co znamená to jinde? V jiné třídě?

Nahlásit jako SPAM
IP: 83.240.104.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
radar.sm
~ Anonymní uživatel
13 příspěvků
25. 7. 2010   #11
-
0
-

no me to bylo jasny ze to pujde težko pochopit:D...proste dam priklad kterej je uplne nesmyslnej ale to nevadi.
dam si na plochu tlacitko kliknu na nej vytvori se me asi ta trida(jestli se to tak jmenuje) a ja do ni napisu
int x = 500;
x += 10;
Cursor.Position = new Point(x, 500);

tak a vlastne to je takhle napr...pokazdy se me do toho x nacte tech 500..takze mys bude na 510.
Ale ja potrebuju jen pri prvnim spusteni ji dat na 500.
Tak jsem zkusil napsat tu promenou do tridy load(jsem vydedukoval ze tohle to udela pri nacteni programu)..
no ale kdys do toho dam int x = 500; a do toho kliku uz ne tak to hodi chybu.
Snad uz to bude k pochopeni:)
Moc diky:)

Nahlásit jako SPAM
IP: 86.61.246.–
RePRO0
Super člen
25. 7. 2010   #12
-
0
-

    public class TvujFormular : Form

{
// třídní složka
private int x;

// konstruktor
public TvujFormular()
{
InitializeComponent();
}

// nastavíme hodnotu X (dokonce by to šlo hodit i do konstruktoru)
private void TvujFormular_Load(object sender, EventArgs e)
{
x = 500;
}

// no a budeme měnit hodnotu souřadnice X při každém stisku tlačítka
private void btn_Click(object sender, EventArgs e)
{
Cursor.Position = new Point(x, 500);
x += 10;
}
}

Nahlásit jako SPAM
IP: 83.240.104.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
radar.sm
~ Anonymní uživatel
13 příspěvků
29. 7. 2010   #13
-
0
-

Moc dik. Moc mě to pomohlo.
Ale každopadně se časem jestě na necco optam:)

Nahlásit jako SPAM
IP: 86.61.246.–
Petrroll0
Stálý člen
29. 7. 2010   #14
-
0
-

Já bych k tomu měl jiný dotaz, v třídě button už je implicitně přiřazená metoda název_Click k události?
EDIT: Tady už vím jak to je.

Nahlásit jako SPAM
IP: 92.62.224.–
radar.sm
~ Anonymní uživatel
13 příspěvků
31. 7. 2010   #15
-
0
-

Tak mam zas další dotaz:)
Opravdu jsem hledal, ale nic co jsem nasel nefakcilo:(...
Takže mooc děkuju jestli mě to jsem nekdo hodíte budu moc vděčnej:)
Zatíím.

Nahlásit jako SPAM
IP: 86.61.246.–
Petrroll0
Stálý člen
31. 7. 2010   #16
-
0
-

Máš dotaz, ale neprozradíš jaký, to se ale budu muset podívat do věštecké koule co hledáš. ;) Neusnadníš nám to tím že se opravdu zeptáš?

Nahlásit jako SPAM
IP: 92.62.224.–
radar.sm
~ Anonymní uživatel
13 příspěvků
31. 7. 2010   #17
-
0
-

jee jak se to stalo tyjo se mě nějak vypařil jeden řádek:D
Ten dotaz je, jakej je prikaz na kliknutí myši(levý i pravý tlačítko)......pohybování je diky vam hotový ted dodělat klikaní:)
Moc děkuji:-*

Nahlásit jako SPAM
IP: 86.61.246.–
radar.sm
~ Anonymní uživatel
13 příspěvků
5. 8. 2010   #18
-
0
-

Tak jsme nasel tenhle kod co by mel simulovat to kliknuti, atd.
Ale bohužel si s nim nemůžu poradit.
Pomohl by me nekdo?prosím:)
Stacilo by ho dat do malej aplikace kde pri kliknuti na tlacitko mys klikne na nejake souradnice:)dekuji mooooc


using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace YourNamespaceHere
{
public static class VirtualMouse
{
// import the necessary API function so .NET can
// marshall parameters appropriately
[DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);

// constants for the mouse_input() API function
private const int MOUSEEVENTF_MOVE = 0x0001;
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
private const int MOUSEEVENTF_RIGHTUP = 0x0010;
private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
private const int MOUSEEVENTF_MIDDLEUP = 0x0040;
private const int MOUSEEVENTF_ABSOLUTE = 0x8000;

// simulates movement of the mouse. parameters specify changes
// in relative position. positive values indicate movement
// right or down
public static void Move(int xDelta, int yDelta)
{
mouse_event(MOUSEEVENTF_MOVE, xDelta, yDelta, 0, 0);
}

// simulates movement of the mouse. parameters specify an
// absolute location, with the top left corner being the
// origin
public static void MoveTo(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x, y, 0, 0);
}

// simulates a click-and-release action of the left mouse
// button at its current position
public static void LeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
}
}
}

Nahlásit jako SPAM
IP: 86.61.246.–
Petrroll0
Stálý člen
5. 8. 2010   #19
-
0
-

Hoď to do tagů "kód" a zkusím se na to podívat. // Moje znalosti na to ale asi stačit nebudou

Nahlásit jako SPAM
IP: 92.62.224.–
liborb
~ Redaktor
+18
Guru
6. 8. 2010   #20
-
0
-

Místo mouse_event používej SendInput (http://msdn.microsoft.com/en-us/library/ms646310(v=VS.85).aspx):

[DllImport("User32.dll")]

public static extern uint SendInput(uint numberOfInputs, [MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] INPUT[] input, int structSize);

[StructLayout(LayoutKind.Explicit)]
public struct INPUT
{
[FieldOffset(0)]
public int type;
[FieldOffset(4)] //*
public MOUSEINPUT mi;
[FieldOffset(4)] //*
public KEYBDINPUT ki;
[FieldOffset(4)] //*
public HARDWAREINPUT hi;
}

[StructLayout(LayoutKind.Sequential)]
public struct MOUSEINPUT
{
public int dx;
public int dy;
public uint mouseData;
public uint dwFlags;
public uint time;
public IntPtr dwExtraInfo;
}

[StructLayout(LayoutKind.Sequential)]
public struct KEYBDINPUT
{
public ushort wVk;
public ushort wScan;
public uint dwFlags;
public uint time;
public IntPtr dwExtraInfo;
}

[StructLayout(LayoutKind.Sequential)]
public struct HARDWAREINPUT
{
uint uMsg;
ushort wParamL;
ushort wParamH;
}



No a pak máme 2 tlačítka, když na jedno z nich klikneme a bude tam takováto kód:
private void button1_Click(object sender, EventArgs e)

{
INPUT[] mouse = new INPUT[3];

mouse[0].type = 0/*INPUT_MOUSE*/;
mouse[0].mi.dx = -100;
mouse[0].mi.dy = -100;
mouse[0].mi.dwFlags = 0x0001/*MOUSEEVENTF_MOVE */;
mouse[0].mi.time = 0;
mouse[0].mi.dwExtraInfo = (System.IntPtr)0;

mouse[1].type = 0/*INPUT_MOUSE*/;
mouse[1].mi.dx = 0;
mouse[1].mi.dy = 0;
mouse[1].mi.dwFlags = 0x0002/*MOUSEEVENTF_LEFTDOWN */;
mouse[1].mi.time = 0;
mouse[1].mi.dwExtraInfo = (System.IntPtr)0;

mouse[2].type = 0; /*INPUT_MOUSE*/
mouse[2].mi.dx = 0;
mouse[2].mi.dy = 0;
mouse[2].mi.dwFlags = 0x0004; /*MOUSEEVENTF_LEFTUP*/;
mouse[2].mi.time = 0;
mouse[2].mi.dwExtraInfo = (System.IntPtr)0;

uint ret = SendInput((uint)mouse.Length, mouse, Marshal.SizeOf(mouse[0].GetType()));
}


tak se pohne myš relativně o -100, -100 a "klikne" na tomto novém místě, takže pokud je na tom místě jiné tlačítko, tak se ti to dostaneme zase do OnClick toho tlačítka.

Nahlásit jako SPAM
IP: 85.207.166.–
radar.sm
~ Anonymní uživatel
13 příspěvků
6. 8. 2010   #21
-
0
-

je super moc dik:)
A muzu se jeste zeptat co je tohle za chybu?
Error 1 An object reference is required for the non-static field, method, or property 'Form1.z'

Nahlásit jako SPAM
IP: 86.61.246.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 38 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý