Meření počtu kliků (myší ne tech tezkych v rl :p)   zodpovězená otázka

VB.NET

Dělám si takovou blbovinku co dělá statistiky kolik jsem najezdil myší a podobně, chtěl bych to ještě naučit počítat kolikrát jsem kliknul na myši. Jistě není problem počítat kliknutí na nějaký objekt ve formu nebo na form ale když kliknu někde jinde tak na to sem za boha nemohl dojit. Jestli chcete muzu nasdilet co sem zatim napsal a muzete to dat do serialu "Jak se nema psat kod" protoze pisu necitelne i pocitacovym fontem :p

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

Zdravím použite pre to tento jednoduchý kód

Public Class Form1:Inherits System.Windows.Forms.Form
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer
    Private WithEvents timer As New System.Windows.Forms.Timer
    Private downFlag As Boolean
    Private mouseClicks%

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        timer.Interval = 1
        timer.Enabled = 1
    End Sub

    Private Sub timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles timer.Tick
        If GetAsyncKeyState(1) = 0 Then
            If downFlag Then
                downFlag = False
                Me.mouseClicks += 1
            End If
        Else
            downFlag = True
        End If
        Label1.Text = "Tlačítko stlačené " & Me.mouseClicks & "x"
    End Sub
End Class

Viac o tom ako používať API sa dočítate v článku :

http://www.vbnet.cz/clanek--94-skodorado...

Vašo

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

Tak toto bych zrovna nepovažoval za příliš použitelné. Když nastavíte interval časovače na příliš nízkou hodnotu, bude to zbytečně náročné. Když nastavíte interval na vyšší hodnotu, je velká pravděpodobnost, že klikanec nebude vůbec zaregistrován.

Správný postup by bylo použít globální API Hooks (konkrétně MouseHook) který umožňuje zachytávat zprávy ohledně událostí myši ještě než dorazí do cílového okna. Viz. například http://www.codeproject.com/KB/cs/globalh...

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

dekuji za odpovědi, nejak to sesmolim :)

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