|
|
Egér gombok lenyomásának szimulációja
|
|
Példaprogram letöltése
3764 bájt
|
Ebben a példában arra keresünk megoldást, hogy miként lehet kiváltani az egér gombjának lenyomását anélkül, hogy hozzányúlnánk az egérhez. Ezáltal forráskódból vezérelhetjük, például egy Button komponens lenyomását, úgy hogy a lenyomott egérgombokat is azonosítani tudjuk.
A legelső lépés, hogy meg kell határoznunk annak az objektumnak a koordinátáit, amelyre kattintani szeretnénk. A mellékelt példában egy Button komponens lenyomását szimuláljuk, az egér mindhárom gombjával.
Az objektumnak bármely koordinátája jó, vehetjük például a közepét, az biztos.
function TForm1.GetButton1Points: TPoint;
begin
Result.x:=Button1.Left+(Button1.Width div 2);
Result.y:=Button1.Top+(Button1.Height div 2);
end;
A meghatározott objektum koordinátákat át kell alakítanunk képernyő koordinátákká. Erre szolgál a ClientToScreen függvény.
Pt:=GetButton1Points;
Pt:=ClientToScreen(Pt);
A képernyő koordinátákat át kell alakítanunk mickey-be. Ez a minimális egérelmozdulás egysége.
Pt.x:=Round(Pt.x*(65535/Screen.Width));
Pt.y:=Round(Pt.y*(65535/Screen.Height));
Ezután az egeret a kiszámított koordinátájú pozícióra mozgatjuk.
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE,Pt.x,Pt.y,0,0);
Végül kiváltjuk az egérgomb lenyomásának és felengedésének eseményeit.
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,Pt.x,Pt.y,0,0);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,Pt.x,Pt.y,0,0);
Miután az egeret a Button komponens fölé vittük, majd kiváltottuk a lenyomás és a felengedés eseményeit, a számítógép ezt úgy értékeli, mintha a felhasználó kattintott volna a nyomógombra.
Ha felhasználjuk például a nyomógomb OnMouseUp eseményét, akkor azt is meghatározhatjuk, hogy melyik gomb lett lenyomva.

mouse_event
procedure mouse_event(
dwFlags,
dx,
dy,
dwData,
dwExtraInfo: DWORD
)
Egér események kiváltására szolgál.
Paraméterek
dwFlags
Az esemény típusa. Az alábbi értékek kombinációja lehet.
| Érték |
Jelentése |
| MOUSEEVENTF_ABSOLUTE |
Ha használjuk ezt az értéket, akkor az egérelmozdulás értéke a dx és dy paraméterekben relatív, ha nem használjuk, akkor abszolút érték. |
| MOUSEEVENTF_MOVE |
Az egér elmozdítása. |
| MOUSEEVENTF_LEFTDOWN |
Bal gomb lenyomása. |
| MOUSEEVENTF_LEFTUP |
Bal gomb felengedése. |
| MOUSEEVENTF_RIGHTDOWN |
Jobb gomb lenyomása. |
| MOUSEEVENTF_RIGHTUP |
Jobb gomb felengedése. |
| MOUSEEVENTF_MIDDLEDOWN |
Középső gomb lenyomása. |
| MOUSEEVENTF_MIDDLEUP |
Középső gomb felengedése. |
| MOUSEEVENTF_WHEEL |
Csak NT-nél. Az egér görgőjének elmozdítása. |
dx
Az egérkurzor X koordinátája, vagy elmozdulása.
dy
Az egérkurzor Y koordinátája, vagy elmozdulása.
dwData
Ha a dwFlags-ben a MOUSEEVENTF_WHEEL eseményt használjuk, akkor ez a paraméter adja meg a görgő elmozdulásának mértékét. Minden más esetben itt 0 értéknek kell szerepelnie.
dwExtraInfo: DWORD
Extra információ.
|
Cikksorozat
| 2591 | Windows | Tippek és trükkök - RAS - Modem csengetési szám állítása | 1. rész |
| 2622 | Windows | Tippek és trükkök - Program futtatása más felhasználóként | 2. rész |
| 2640 | Windows | A Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák | 3. rész |
| 2657 | Windows | Tippek és trükkök - Internet Explorer | 4. rész |
| 2667 | Windows | Tippek és trükkök | 5. rész |
| 2684 | Windows | Alapértelmezések állítása, telepítési fájlok helye, intéző nézetek | 6. rész |
| 2696 | Windows | Biztonsági trükkök | 7. rész |
| 2702 | Windows | Windows XP trükkök | 8. rész |
| 2729 | Windows | Windows 2000 és XP tippek, trükkök | 9. rész |
| 2757 | Windows | Registry trükkök | 10. rész |
| 2784 | Windows | Tippek, trükkök | 11. rész |
| 2829 | Windows | Tippek, trükkök | 12. rész |
| 2889 | Windows | Windows XP tippek | 13. rész |
| 2909 | Windows | Tippek Windows XP-hez | 14. rész |
| 2919 | Windows | Windows tippek | 15. rész |
| 2924 | Windows | Windows tippek | 16. rész |
| 2963 | Windows | Windows tippek | 17. rész |
| 2973 | Windows | Windows Tippek | 18. rész |
| 2981 | Windows | Windows tippek | 19. rész |
| 2990 | Windows | Tippek-trükkök | 20. rész |
| 3027 | Windows | IIS tippek | 21. rész |
| 3034 | Windows | Windows XP tippek-trükkök | 22. rész |
| 3088 | Windows | Windows 2000/XP tippek, trükkök | 23. rész |
| 3133 | Windows | Windows XP tippcsokor | 24. rész |
| 3140 | Windows | Windows XP tippek, trükkök | 25. rész |
| 3152 | Windows | XP és IIS tippek - trükkök | 26. rész |
| 3158 | Windows | Windows XP tippek, trükkök | 27. rész |
| 3168 | Windows | Tippek, trükkök | 28. rész |
| 3170 | Windows | Registry trükkök | 29. rész |
| 3179 | Windows | Tippek, trükkök | 30. rész |
| 3197 | Windows | Windows XP tippek, trükkök | 31. rész |
| 3205 | Windows | Tippek, trükkök | 32. rész |
| 3214 | Windows | Tippek, trükkök | 33. rész |
| 3223 | Windows | Tippek, trükkök | 34. rész |
| 3233 | Windows | Tippek, trükkök | 35. rész |
| 3271 | Windows | Tippek, trükkök | 36. rész |
| 3307 | Windows | Tippek, trükkök | 37. rész |
| 3370 | Windows | Tippek, trükkök | 38. rész |
| 3399 | Windows | Tippek, trükkök | 39. rész |
| 3510 | Windows | Tippek, trükkök | 40. rész |
| 3611 | Windows | Hardverrel kapcsolatos tippek, trükkök | 41. rész |
| 3668 | Windows | Registry trükkök | 42. rész |
| 3711 | Windows | Tippek, trükkök | 43. rész |
| 3771 | Windows | Tippek, trükkök | 44. rész |
| 3801 | Windows | Tippek, trükkök | 45. rész |
| 3831 | Windows | Tippek, trükkök | 46. rész |
| 3891 | Windows | Tippek, trükkök | 47. rész |
| 3921 | Windows | Tippek, trükkök | 48. rész |
| 3981 | Windows | Tippek, trükkök | 49. rész |
| 4041 | Windows | Tippek, trükkök | 50. rész |
| 4071 | Windows | Tippek, trükkök | 51. rész |
| 4151 | Windows | Tippek, trükkök | 52. rész |
| 4171 | C# | Tippek, trükkök | 53. rész |
| 4211 | Windows | Tippek, trükkök | 54. rész |
| 4251 | Windows | Tippek, trükkök | 55. rész |
| 4281 | Windows | Tippek, trükkök | 56. rész |
| 3589 | Delphi | Tippek, trükkök | 57. rész |
| 3718 | Delphi | Tippek, trükkök | 58. rész |
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2003 évkönyv 239. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|