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 Sub
Moduuli:
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Type POINTAPI x As Long y As Long End Type
Tuo 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