powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / время нажатия на каждую клавишу
9 сообщений из 9, страница 1 из 1
время нажатия на каждую клавишу
    #38967305
fanmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, нужна ваша помощь !
Есть фраза, которую пользователь вводит в текстовое поле, необходимо посчитать в секундах время нажатия на каждую клавишу и время ее удержания и записать результат в массив.

Подскажите, пожалуйста, каким образом это осуществить?
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967341
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
события КеуDown и KeyUp, функция Now()

Но, надо отметить, дата в VB6 не умеет работать с миллисекундами
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967352
fanmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может подскажите как это все организовать, такое чувство, что пол интернета уже облазил, но сам код или какой-нибудь пример на такую тему не нашел. Спасибо
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967367
fanmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
Private Sub TextBox1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.N Then
            t1 = TimeOfDay.Millisecond
        End If
    End Sub



Но выдает постоянно результат 0, как исправить ?

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967372
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стоило бы начать с прочтения правил форума ...

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967376
fanmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Public Class Form1
Dim t1, t2, t3 As Date
Dim i As Integer


Private Sub TextBox1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.N Then
t1 = Now

End If
End Sub

Private Sub TextBox1_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.N Then
t2 = Now
'e.Handled = True
End If
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
i = 0
If TextBox1.Text = "тестова фраза" Then i = i + 1
Label1.Text = Str(i)


Label2.Text = CStr(t2.Millisecond - t1.Millisecond)
End Sub
End Class


этот код рабочий, но считает только конкретно милисекунды, как его можно офрмить чтобы брались для разницы милисекунды и секунды вместе?
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967383
fanmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Private Sub TextBox1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.N Then
t1 = Now

End If
End Sub

Private Sub TextBox1_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.N Then
t2 = Now
'e.Handled = True
End If
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
i = 0
If TextBox1.Text = "тестова фраза" Then i = i + 1
Label1.Text = Str(i)
Label2.Text = CStr(t2.Millisecond - t1.Millisecond)
End Sub



этот код рабочий, но считает только конкретно милисекунды, как его можно офрмить чтобы брались для разницы милисекунды и секунды вместе?
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967484
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fanmag,

аффтор или вы используйте теги или идите у своего преподавателя спрашивайте, как это сделать.
а лучше бросайте это дело, если вы не в состоянии совладать с такой задачей, значит стоит вернутся к основам программирования.
начните с игры "Черепашка" в которой учащиеся школы изучали алгоритмику.

Вам уже написали русским языком.
В событии KeyDown вы запоминаете время нажатии кнопки, в событии KeyUp считаете время её удержания

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;

namespace WpfApplication16
{
    public partial class MainWindow : Window
    {
        private readonly Dictionary<Key, DateTime> _pressed;
        public MainWindow()
        {
            InitializeComponent();
            KeyDown += MainWindow_KeyDown;
            KeyUp += MainWindow_KeyUp;
            _pressed = new Dictionary<Key, DateTime>();
        }

        void MainWindow_KeyUp(object sender, KeyEventArgs e)
        {
            if (_pressed.ContainsKey(e.Key))
            {
                Debug.Print("Key '{0}' has been pressed about {1} seconds", 
                    e.Key,
                    (DateTime.Now - _pressed[e.Key]).TotalSeconds);
                _pressed.Remove(e.Key);
            }
        }

        void MainWindow_KeyDown(object sender, KeyEventArgs e)
        {
            if (!_pressed.ContainsKey(e.Key))
                _pressed[e.Key] = DateTime.Now;
        }
    }
}
...
Рейтинг: 0 / 0
время нажатия на каждую клавишу
    #38967498
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в данном случае лучше использовать Stopwatch для большей точности. Ну и учитывать погрешности.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / время нажатия на каждую клавишу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]