Kirjoittaja: Antti Laaksonen
Kirjoitettu: 17.02.2002 – 17.02.2002
Tagit: koodi näytille, vinkki
Melko yksinkertainen hiiren matkamittari VB:lle. Ilmoittaa matkan pituuden pikseleissä, senttimetreissä ja metreissä. Käyttää hyväkseen GetCursorPos-API-funktiota.
Formi:
Private Sub Form_Activate()
AutoRedraw = True
Dim matka As Long
Dim kohta As POINTAPI
Dim vkohta As POINTAPI
matka = 0
Do
a = GetCursorPos(kohta)
If vkohta.x <> 0 Or vkohta.y <> 0 Then
matka = matka + Abs(kohta.x - vkohta.x)
matka = matka + Abs(kohta.y - vkohta.y)
End If
If vkohta.x <> kohta.x Or vkohta.y <> kohta.y Then
Cls
Print matka; " pikseliä"
Print CLng(matka * 15 / 567 * 100) / 100; " cm"
Print CLng(matka * 15 / 567) / 100; " m"
End If
DoEvents
vkohta = kohta
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End SubModuuli:
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
x As Long
y As Long
End TypeTuo on törkiää! Mää kysyin e-maililla, että milläs sais sellasen, et se ottais myös formin ulkopuolisia hiiren touhuja. Etpä tienny. No, nyt se on seuraavana päivänä täällä. Mää kysyin just sitä varten, et mä olisin tehny tollasen. No, enhän mää nyt sitä enää voi tehä,ku se on täällä :)
Kysyit, miten saa reagoimaan formin ulkopuolisiin KLIKKAUKSIIN. Ei tuo klikkauksiin reagoi, ainoastaan katsoo hiiren paikan.
Noh, niin, mutta melkein sama asia :) Tiesitkö sitten tuon silloinkin?
Loistava ohjelma
itse alan ohjelmoimaan samanlaisia kunhan osaan...
Ööhh käytän 2010 versiota ja mulle pukkaa vaan erroreita...
Käytät .net:tiä. Tässä sulle:
'poista formin koodi aivan kokonaan ja laita tämä tilalle! Muuten menee koko juttu pilalle!
Public Class Form1
Private Sub Form1_Activate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activate
Dim matka As Long = 0 'Muuttujat
Dim p as point
dim vp as point
Do
p = cursor.position
if not p = vp then
matka += 1
if not system.io.file.exists("C:\hiirenMatka.txt") then System.IO.File.Create("C:\HiirenMatka.txt")
System.io.file.writeAllText("C:\HiirenMatka.txt", matka & " pixels")
end if
vp = p
Loop
end sub
end class