1 (изменено: duneyrr, 2016-03-18 09:56:43)

Тема: [AHK] Подсчёт количества нажатий

Собственно хотелось бы сделать простой макрос с подсчётом количества нажатий на кнопку F4.


F4::Counter() ;

Counter(){
    BlockInput On
*код отсутствует*
    BlockInput Off
    return
}

Помнится что-то начинал, но в итоге ни к чему не пришел. Была проблема с подсчетом а именно с переменной. Он не прибавлял к старому числу))
Надеюсь кто-нибудь поможет

2

Re: [AHK] Подсчёт количества нажатий

F4::Counter()  

Counter(){
	Static Count := 0
    BlockInput On
	ToolTip % ++Count
    BlockInput Off
    return
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3 (изменено: duneyrr, 2016-03-17 23:12:05)

Re: [AHK] Подсчёт количества нажатий

Вариант хороший, но боюсь не подойдёт. Оптимальный вариант будет если он будет писать в файл цифру. Аналогично этому способу но с записью. Просто если я перезапущу макрос, то подсчёт слетит.

Нашел свой предыдущий скрипт, но правда для другой программы:

_StartCount()
; Ваш код

Func _StartCount()
    Local $s_Ini = @ScriptDir & '\Count.ini', $s_Sec = 'Count', $s_KeyCount = 'CountStart', $s_KeyLast = 'LastDateStart'

    IniWrite($s_Ini, $s_Sec, $s_KeyCount, Int(IniRead($s_Ini, $s_Sec, $s_KeyCount, 0)) + 1)
    IniWrite($s_Ini, $s_Sec, $s_KeyLast, StringFormat('%02d.%02d.%04d %02d:%02d:%02d', @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC))
EndFunc   ;==>_StartCount

Можно ли его впихнуть сюда как-то ? :-)

4

Re: [AHK] Подсчёт количества нажатий

В русской справке есть перевод IniWrite и IniRead, попробуйте почитать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: [AHK] Подсчёт количества нажатий

duneyrr, ознакомьтесь с этой темой, отредактируйте заголовок.

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

6

Re: [AHK] Подсчёт количества нажатий

duneyrr, невнимательно ознакомились, читайте ещё раз.

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

7

Re: [AHK] Подсчёт количества нажатий

serzh82saratov, А как добавить в Ваш вариант сбрасывание счетчика при нажатии на любые другие другие клавиши, кроме, например, F1 и F2?

8 (изменено: serzh82saratov, 2016-03-18 23:55:07)

Re: [AHK] Подсчёт количества нажатий

Надо прикрутить хук.


Global oKeys := {Func:"MyFuncName", Skip:{"vk70sc3B":"F1","vk71sc3C":"F2","vk73sc3E":"F4"}}, Count := 0

F4::Counter()

Counter() {   
	ToolTip % ++Count  
} 

MyFuncName(button, msg) {
	Count := 0
 	ToolTip 
}

KeyboardHook(nCode, wParam, lParam)  {
	Static msg, vk, sc 
		, oMsg := {0x100: "WM_KEYDOWN", 0x101: "WM_KEYUP", 0x104: "WM_SYSKEYDOWN", 0x105: "WM_SYSKEYUP"} 
	, hHookKeybd := DllCall("SetWindowsHookEx"
		, Int, 13		;	WH_KEYBOARD_LL
		, Ptr, RegisterCallback("KeyboardHook", "Fast")
		, Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
		, UInt, 0, Ptr)
	, _ := OnExit(Func("KeyboardHookExit").Bind(hHookKeybd))
  
	msg := wParam . "" 
	vk  := NumGet(lParam + 0, "UInt") . "" 
	ext := NumGet(lParam + 8, "UInt") & 1
	sc  := NumGet(lParam + 4, "UInt") | ext << 8 . ""
	
	SetTimer, EventHandling, -10 
	Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
      
	EventHandling: 
		button := "vk" Format("{:x}", vk) "sc" Format("{:x}", sc) 
		If oKeys.Skip.HasKey(button)
			Return   
		Func(oKeys.Func).Call(button, oMsg[msg])
		Return
}

KeyboardHookExit(hHook) { 
	DllCall("UnhookWindowsHookEx", Ptr, hHook) 
}

Esc::ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui