Oprogramowanie do mierzenia czasu przesunięcia kursora

0

Cześć wam.

Mam problem z oprogramowaniem do myszy.
Mianowicie potrzebuje zrobić coś takiego w pętli a nie bardzo wiem jak.

        private void licznik(object sender, MouseEventArgs e)
        {
            double x = MousePosition.X;
            label_x.Text = x.ToString();           
        }

pokazuje mi wartość x czyli pozycje kursora na ekranie.
Tylko chciałbym aby na samym początku wartość ustawić na 0 a kiedy dojdzie do 500 to żeby z powrotem ustawić ja na zero i to zapętlić tak by się nie kończyło.
Czyli od 0 do 500 i pętla w ~
Kolejnym ważnym elementem jest zmierzenie czasu w sekundach.
W jakim czasie mysz pokona odległość od 0 do 500 pikseli

Bardzo proszę o pomoc.

Pozdrawiam

0
        bool pierwsze_wejscie = true;
        int licznik_przesuniecia_pixeli = 0;
        Point ostatnia_pozycja_kursora;
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {

            if (!pierwsze_wejscie)
            {
                licznik_przesuniecia_pixeli += Math.Abs(ostatnia_pozycja_kursora.X - e.X) + Math.Abs(ostatnia_pozycja_kursora.Y - e.Y);
                textBox1.Text = "" + licznik_przesuniecia_pixeli;
                if (licznik_przesuniecia_pixeli >= 500) licznik_przesuniecia_pixeli = 0;
            }
            ostatnia_pozycja_kursora = e.Location;
            pierwsze_wejscie = false;
        }

zobacz jak działa, może o to chodziło :]

0

wyobraź sobie że myszka przesuwa się nie ustannie w prawo. Zaczyna od 0 lewej strony i dochodzi do 500 teraz nastepuje pętla i znowu kursor wraca do mijsca 0 az znowu osiągnie 500 . i tak w nieskończoność

A teraz zeby te cykle mierzyć w czasie w sekundach

ja to policzyc to już chyba mam pomysł :

za pomocą :

     DateTime startTime = DateTime.Now;
       // tu bedzie pętelka od 0 do 500 pętla
     DateTime stopTime = DateTime.Now;
     TimeSpan roznica = stopTime - startTime;
     label2.Text = roznica.TotalSeconds.ToString();

bede wdzieczny za kazda pomoc

0
dark_astray napisał(a)
        bool pierwsze_wejscie = true;
        int licznik_przesuniecia_pixeli = 0;
        Point ostatnia_pozycja_kursora;
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {

            if (!pierwsze_wejscie)
            {
                licznik_przesuniecia_pixeli += Math.Abs(ostatnia_pozycja_kursora.X - e.X) + Math.Abs(ostatnia_pozycja_kursora.Y - e.Y);
                textBox1.Text = "" + licznik_przesuniecia_pixeli;
                if (licznik_przesuniecia_pixeli >= 500) licznik_przesuniecia_pixeli = 0;
            }
            ostatnia_pozycja_kursora = e.Location;
            pierwsze_wejscie = false;
        }

zobacz jak działa, może o to chodziło :]

dobrze to wykombinowałeś teraz już wiem jak połącze to z obliczaniem czasu w cyklach to zamieszcze cały kod.

Naprawdę wielkie dzięki.
Pozdrawiam
Krzysztof

0

a jak działa to e.Location

Potrzebuje po prostu przenieśc kursor w lewo x = 0

Chciałem uzyc Cursor.Position.X ale to mi unieruchamia kursor a ja potrzebuje zeby on przesuwał sie w prawo do x=500 i znowu wracał na x=0

0

chodzi o to żeby zmniejszyć pozycję x? Cursor.position.X -= 10;

0

cały kod programu :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Wiatromierz
{
    public partial class wiatr : Form
    {
        bool pierwsze_wejscie = true;
        int licznik_przesuniecia_pixeli = 0;
        Point ostatnia_pozycja_kursora;

        public wiatr()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            pasek.Maximum = 750;
            DateTime startTime = DateTime.Now;
            if (!pierwsze_wejscie)
            {
                label_x.Text = "" + licznik_przesuniecia_pixeli;
                pasek.Value = +licznik_przesuniecia_pixeli;
                godz.Text = startTime.ToLongDateString();
                godz_o.Text = startTime.ToLongTimeString();
                licznik_przesuniecia_pixeli = Cursor.Position.X;
                if (licznik_przesuniecia_pixeli >= 500) licznik_przesuniecia_pixeli = 0;
            }
            ostatnia_pozycja_kursora = e.Location;
            pierwsze_wejscie = false;

            DateTime stopTime = DateTime.Now;
            TimeSpan roznica = stopTime - startTime;
            label2.Text = roznica.TotalMilliseconds.ToString();
            System.Windows.Forms.Cursor.Position = new Point(0, 100);

        }

        private void zakoncz_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }



    }

}

Z myszy na kulkę zrobiłem urzadzenie do pomiaru wiatru:
Czy wieje i z jaką siłą wieje.
Działa to na zasadzie poruszania się kursora w danym przedziale pikseli.

Oczywiście pozostaje kwestia oprogramowania.

Zapraszam wszystkich do udziału w projekcie bo jest całkiem ciekawy. Oprogramowanie będzie dostepne za free.

Pozdrawiam
[email protected]

0

i już gotowe.

Pozdrawiam

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Witrak
{
    public partial class Form1 : Form
    {
        int licznik_x;
        public int bbb = 0;
        public DateTime stopTime1;
        public DateTime startTime1;
        
        

        public Form1()
        {
            InitializeComponent();
        }



        private void licznik(object sender, MouseEventArgs e)
        {
            licznik_x = Cursor.Position.X;
            label1.Text = licznik_x.ToString();

            if (licznik_x >= 500)
            {               
                Cursor.Position = new Point(0, 300);
                bbb++;
                if (bbb == 1)
                {
                    startTime.CustomFormat = "HH:mm:ss";
                    startTime.Format = DateTimePickerFormat.Custom;
                    startTime.Value = DateTime.Now;
                    startTime1 = startTime.Value;
                }

                if (bbb == 51)
                {
                    stopTime.CustomFormat = "HH:mm:ss";
                    stopTime.Format = DateTimePickerFormat.Custom;
                    stopTime.Value = DateTime.Now;
                    stopTime1 = stopTime.Value;                    
                }
                if (bbb == 51)
                {
                    TimeSpan godz_w = stopTime1 - startTime1;
                    TimeSpan min_w = stopTime1 - startTime1;
                    TimeSpan sek_w = stopTime1 - startTime1;
                    
                    double godz, min, sek;

                    godz = godz_w.Hours;
                    min = min_w.Minutes;
                    sek = sek_w.Seconds;

                    godz_o.Text = godz.ToString();
                    min_o.Text = min.ToString();
                    sek_o.Text = sek.ToString();
                    bbb = 0;
                }
                label2.Text = bbb.ToString();                        

            }
            
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1