Помогите написать простой скрипт Topic is solved

Помощь в написании скриптов
m1fist0
Posts: 3
Joined: 11 Nov 2023, 04:51

Помогите написать простой скрипт

11 Nov 2023, 05:06

Скрипт должен включаться с клавиши capslock, и когда CapsLock включен (горит лампочка) должна зажаться клавиша " ` " (тильда), и наоборот - когда CapsLock выключен клавиша должна отжаться!!! помогите пожалуйста
я пробовал сам что-то написать но все четно!

Code: Select all

vk14::

	#If GetKeyState("CapsLock", "T")   ; CapsLock включен
	Loop   ; зацыклить действие в скобках
{
	Send {vkC0 down}  ; Нажать клавишу "ё".
	Sleep 10  ; Держать её нажатой 10 миллисекунд.
	Send {vkC0 up}  ; отпустить кнопку "ё".
}	
	return
[Mod edit: + code tags.]
vmech
Posts: 361
Joined: 25 Aug 2019, 13:03

Re: Помогите написать простой скрипт  Topic is solved

12 Nov 2023, 00:03

Code: Select all

#Requires Autohotkey v2.0
vk14::
{
  Static  trigger := 0,
          procKeySend := ()=>(Send('{vkC0 down}'), Sleep(10), Send('{vkC0 up}'))
  SetCapsLockState(trigger ^= 1),
  SetTimer(procKeySend, trigger && 50),
  trigger && procKeySend()
}
Please post your script code inside [code] ... [/code] block. Thank you.
m1fist0
Posts: 3
Joined: 11 Nov 2023, 04:51

Re: Помогите написать простой скрипт

12 Nov 2023, 02:34

спасибо! работает! если возможно- то Добавить добавить ToolTip когда скрипт работает ! я тут нашел один скрипт и получилось добавить подсказку ( правда это на первой версии да и лампочка мигает от CapsLock)

Code: Select all

vk14::
	SetCapsLockState, On
	ToolTip, ONONONONONONONONON, 1200, 5           ; тут показывает в верху активного окна            
    If isKeyPressed := !isKeyPressed   
        SetTimer, SendA, 10                 
    Else
    {
	SetCapsLockState, Off
	SetTimer, RemoveToolTip, -10                                ;   тут удаляет если капс лок не работает    
        SetTimer, SendA, Off                
        Send {vkC0 Up}                       
    KeyWait vk14                              
    return
RemoveToolTip:
ToolTip
return

SendA:
    Send {vkC0 Down}
    return
[Mod edit: [code][/code] tags added.]
vmech
Posts: 361
Joined: 25 Aug 2019, 13:03

Re: Помогите написать простой скрипт

12 Nov 2023, 12:18

Как избавиться от мигания лампочки - я не знаю. По идее это сам Autohotkey постоянно обновляет её состояние, из за команды SetCapsLockState.
Лично мне здесь видится 4 пути:
  1. Закомментировать функцию SetCapsLockState вовсе. Но тогда любая другая программа или скрипт может отключить лампочку, и уже будет непонятно - работает именно этот скрипт, или нет.
  2. Оставить всё как есть, НО добавить в самом начале скрипта функцию SetStoreCapsLockMode(0). Эффект, предположительно, будет как в п.1.
  3. Если добавить постоянный ToolTip как индикатор, то SetCapsLockState можно смело закомментировать - важность управления лампочкой отойдёт на задний план.
  4. Использовать другую кнопку, например ScrollLock - неплохой кандидат, и реализовать засыпание скрипта (Suspend), а не просто остановку таймера. Но лампочка всё равно будет мигать, только уже соседняя :lol: А иконка скрипта в трэе хоть и будет меняться от текущего режима (сон/работа), но мне она кажется малоинформативной. Хотя и иконку можно сменить на другую, но это будет уже совсем другая история.
Как добавить тултип:

Code: Select all

#Requires Autohotkey v2.0
vk14::
{
  Static  trigger := 0,
          procKeySend := ()=>(Send('{vkC0 down}'), Sleep(10), Send('{vkC0 up}'))
  SetCapsLockState(trigger ^= 1),
  SetTimer(procKeySend, trigger && 50),
  trigger && ( procKeySend(), ToolTip('РАБОТАЕТ') ) || ToolTip()
}
Дальше экспериментируй сам - лыжи то твои ;)

ЗЫ. В функции ToolTip можно задать координаты на экране, где подсказка будет отображаться, например ToolTip('РАБОТАЕТ', 800, 600).
Please post your script code inside [code] ... [/code] block. Thank you.
m1fist0
Posts: 3
Joined: 11 Nov 2023, 04:51

Re: Помогите написать простой скрипт

13 Nov 2023, 06:31

Спасибо вам огромное! вы лучший!

Return to “Помощь”

Who is online

Users browsing this forum: No registered users and 8 guests