Zjištění pozice kursoru myši ve VBA   zodpovězená otázka

VB6/VBA

Dobrý den.

Potřeboval bych pomoci s problémem, který se týká VBA, konkrétně MS ACCESS 2007.

Potřeboval bych zjistit pozici kursoru myši. Mám otevřený nějaký formulář, na něm je komponenta obrázek (PrintScreen vzdáleného PC). Dejme tomu, při kliknutí na obrázek bych potřeboval zjistit nějaké souřadnice, kam přesně jsem, nejlépe v rámci samotného obrázku klikl. A nebo alespoň, kam přesně jsem klikl v rámci formuláře, či celé pracovní plochy. Použití "Cursor.Position" mi ve VBA nefunguje.

Pomůže mi někdo?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

VBA: A co událost MouseDown prvku s obrázkem? Tam jsou souřadnice X a Y.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Private Sub Obrázek0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

V každém případě děkuji za rady.

Nicméně jsem nakonec přece jen něco objevil.

Nejsou to sice souřadnice v rámci obrázku, nýbrž v rámci celé pracovní plochy. Nicméně funguje to bezvadně. Je tam i simulace kliknutí, což já osobně nepotřebuji a nezkoušel jsem to.

Část pro zjištění pozice je však mnou ověřená a už ji používám.

Možná se to bude hodit i někomu dalšímu...

' Access the GetCursorPos function in user32.dll
      Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
      ' Access the GetCursorPos function in user32.dll
      Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

      ' GetCursorPos requires a variable declared as a custom data type
      ' that will hold two integers, one for x value and one for y value

      Private Type POINTAPI
      X_Pos As Long
      Y_Pos As Long
      End Type
          
      ' Main routine to dimension variables, retrieve cursor position,
      ' and display coordinates
Private Sub Příkaz1_Click()
      ' Dimension the variable that will hold the x and y cursor positions
      Dim Hold As POINTAPI
      ' Place the cursor positions in variable Hold
      GetCursorPos Hold
      ' Display the cursor position coordinates
      MsgBox "X Position is : " & Hold.X_Pos & Chr(10) & _
         "Y Position is : " & Hold.Y_Pos
End Sub
      
      ' Routine to set cursor position
Private Sub Příkaz1_DblClick(Cancel As Integer)
      ' Looping routine that positions the cursor
         For x = 1 To 480 Step 20
            SetCursorPos x, x
            For y = 1 To 40000: Next
         Next x
End Sub

Přeji příjemný všem den.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale máte pravdu.

Něco tak jednoduchého mně vůbec nenapadlo. :-(

Pro mé použití je to možná lepší, než mé řešení. Vrací to souřadnice vlastní komponenty.

Díky za typ.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback