1 (изменено: Q1x, 2021-09-01 04:46:01)

Тема: AHK: Клавиша не нажата - запуск секундомера

Доброго времени суток. Подскажите пожалуйста, что, тут не так?
Суть такова. Нажата клавиша, запуск секундомер, клавиша опушена, запись в log. Запуск секундомера, клавиша нажата, запись  в log и т.д. Не понимаю, почему не работает...


#InstallKeybdHook 

vk26::
	Send {vk57 Down}
    KeyWait, vk26
	Send {vk57 Up}
	fileappend, w %A_TimeSinceThisHotkey%`n, C:\Users\Desktop\1\1.txt
						StartTime := A_TickCount
						GetKeyState, D, vk26, P
						{
						ElapsedTime := A_TickCount - StartTime
						fileappend, Прошло времени: %ElapsedTime%`n, C:\Users\Desktop\1\1.txt
					}
					
						
return

2 (изменено: Q1x, 2021-09-01 12:37:43)

Re: AHK: Клавиша не нажата - запуск секундомера

Вот, ещё мои попытки.


if winc_presses > 0
{
ElapsedTime := A_TickCount - StartTime
}
		{
		winc_presses += 1
		Return
		}
						winc_presses = 1
						{
						fileappend, Прошло времени: %ElapsedTime%`n, C:\Users\Desktop\1\1.txt
						}
Return

3

Re: AHK: Клавиша не нажата - запуск секундомера

Q1x пишет:

Подскажите пожалуйста, что, тут не так?

Вообще мало что понятно. Про какую именно клавишу идёт речь?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Клавиша не нажата - запуск секундомера

При нажатии на клавишу "F1" запускается таймер, при повторном нажатии - выключается. Результат записывается в файл "log.txt", который создаётся в папке со скриптом.


F1::
	Toggle := !Toggle
	SetTimer, Timer, -1
	Return
	
	Timer:
		if Toggle
			start_time := A_TickCount	
		else
		{
			elapsed_time := A_TickCount - start_time
			FileAppend, %elapsed_time%`n, log.txt
		}
		Return

5

Re: AHK: Клавиша не нажата - запуск секундомера

Taveron, дико извиняюсь.. а зачем тут таймер?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

6

Re: AHK: Клавиша не нажата - запуск секундомера

Погорячился я.


F1::
	Toggle := !Toggle	
	if Toggle
		start_time := A_TickCount	
	else
	{
		elapsed_time := A_TickCount - start_time
		FileAppend, %elapsed_time%`n, log.txt
	}
	Return

7

Re: AHK: Клавиша не нажата - запуск секундомера

Taveron, ваш код можно записать примерно так:

F1:: FileAppend, % (Toggle := !Toggle) ? [][start := A_TickCount] : A_TickCount - start . "`n", log.txt

Но ТС, как я понял, хотел записывать время на каждое нажатие и отпускание клавиши, я только не понял, какой именно: vk57 или vk26.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Клавиша не нажата - запуск секундомера

Я предполагаю, что vk26 нужна была для реализации секундомера на одной клавише.
Ещё можно так реализовать:


F1 Up::
    KeyWait, F1, D
	MsgBox, прошло %A_TimeSinceThisHotkey% мс
	Return

9

Re: AHK: Клавиша не нажата - запуск секундомера

Так вы замеряете время от отпускания клавиши до последующего нажатия, а от нажатия до отпускания нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10 (изменено: Taveron, 2021-09-02 23:43:50)

Re: AHK: Клавиша не нажата - запуск секундомера

Ещё раз глянул код и кажется понял, что за проблема у ТС.
Проверьте правильность пути к файлу.


vk26::
	Send {vk57 down}
    KeyWait, vk26
	Send {vk57 up}
	fileappend, w %A_TimeSinceThisHotkey%`n, C:\Users\КАКОЕ-ТО_ИМЯ\Desktop\1\1.txt
	Return

Можно ещё так:


~vk57::
    KeyWait, vk57
	fileappend, w %A_TimeSinceThisHotkey%`n, log.txt
	Return

11 (изменено: Q1x, 2021-09-03 04:56:41)

Re: AHK: Клавиша не нажата - запуск секундомера

Суть. Клавиша нажата, запуск секундомера, клавиша опущена - запись в лог. Тут всё хорошо.
Проблема, была в том что, мне нужен был промежуток времени, когда клавиша не нажата, то есть, должен идти запуск секундомера.
Остановка, идёт путём нажатия на клавишу и записи в лог. И так циклично.

12 (изменено: Q1x, 2021-09-03 14:06:01)

Re: AHK: Клавиша не нажата - запуск секундомера

Как-то, так. Но, увы не работает.


f1::
						KeyWait, f1
						fileappend, d %A_TimeSinceThisHotkey%`n, 1.log
						
	;SetTimer, Timer, -1
	;Return
	
	;Timer:
			start_time := A_TickCount	
			GetKeyState, state, f1
			if state = D
			{
			elapsed_time := A_TickCount - start_time
			FileAppend, %elapsed_time%`n, 1.log
		}
						return

13 (изменено: Q1x, 2021-09-03 14:05:49)

Re: AHK: Клавиша не нажата - запуск секундомера

Так, тоже не работает.


GetKeyState, state, f1
if state = D
{
						elapsed_time := A_TickCount - start_time
						FileAppend, %elapsed_time%`n, log.txt
						KeyWait, f1
						fileappend, d %A_TimeSinceThisHotkey%`n, log.txt
}
else
{
start_time := A_TickCount	
}

14

Re: AHK: Клавиша не нажата - запуск секундомера

Q1x, знак "(" не заменяет точку в конце предложения, не расслабляйтесь, исправьте свои посты.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder
+ Q1x

15

Re: AHK: Клавиша не нажата - запуск секундомера

Q1x, попробуйте так:


~w::
	Toggle := !Toggle
	if !Toggle
	{
		elapsed_time := A_TickCount - start_time
		FileAppend, "w" была в ненажатом состоянии %elapsed_time% мс`n, log.txt
	}
	KeyWait, w
	start_time := A_TickCount
	FileAppend, "w" была в нажатом состоянии %A_TimeSinceThisHotkey% мс`n, log.txt
	Return
+ Q1x

16

Re: AHK: Клавиша не нажата - запуск секундомера

Taveron Ого, спасибо большое. То, что мне нужно было.