1

Тема: AHK: Активация \ дезактивация

Как сделать активацию и дезактивацию на одну кнопку? Прошу прощение, наверно,  глупый вопрос.

2

Re: AHK: Активация \ дезактивация

Что понимается под активацией и дезактивацией?

3

Re: AHK: Активация \ дезактивация

ypppu пишет:

Что понимается под активацией и дезактивацией?

Допустим есть скрипт... Тоесть мы делаем активацию "F1::", ну и что бы дезактивация была на эту же "F1".

4

Re: AHK: Активация \ дезактивация

Всё равно непонятно. Речь о горячих клавишах, выполнении каких-то действий или другое?

5

Re: AHK: Активация \ дезактивация

ypppu пишет:

Всё равно непонятно. Речь о горячих клавишах, выполнении каких-то действий или другое?

Именно, не так сформулировал

6

Re: AHK: Активация \ дезактивация

Лично в своих скриптах пользуюсь найденным на данном форуме вариантом старт-пауза на одну клавишу:

#MaxThreadsPerHotkey, 2

Vk51::
    If A_IsPaused
    {
        Pause, Off
        Return
    }
    Else
    {
        If Running
        {
            Pause, On
        }
        Else
        {
            Running := True
            остальная часть кода
        }
    }
Return

Ну или так

#MaxThreadsPerHotkey 2 
        
vk54::
    T := !T
    While T 
        ToolTip % A_TickCount  
    return

если MaxThreadsPerHotkey мешает:

vk54::
    T := !T 
    SetTimer, Loop, -1
    return

Loop:
    While T
        ToolTip % A_TickCount  
    return

Вот еще один вариант!

Vk51::
off := 1
Loop
{
    Send, {vk54 down}{vk54 up}
    Random, Rand, 10, 1000
    sleep % Rand + 100

If off = 0
Break
}
return

Vk57::
off := 0
Return

7

Re: AHK: Активация \ дезактивация

Вариант с переменной:

x := 0 ; устанавливает по умолчанию статус "Не активно"

Vk0x70::
if x != 0
{
x = 0
MsgBox, Не активно
Return
}

if x = 0
{
x = 1
MsgBox, Активно 
}
Return

В этой структуре удобнее редактировать фрагменты кода. Сам использую.

8

Re: AHK: Активация \ дезактивация

Если речь идет про деактивацию/активацию назначенных клавиш (hotkeys) и автозамен (hotstrings), то я использую такой вариант с оформлением:

; Pressing Win+A once will suspend hot keys of the script. Pressing it again will unsuspend.
#a::
Suspend  ; suspend/unsuspend AHK script IMPORTANT: must be first string after "#a::", so "#a::" will not be suspended
if (A_IsSuspended==0) 
{
  Gui, Destroy
  Gui, font, s55 cGreen, Verdana ; font size
  Gui, Color, Red
  Gui +LastFound  ; Make the GUI window the last found window for use by the line below.
  WinSet, TransColor, Red
  Gui -Caption
  Gui, Add, Text,, ON
  Gui, Show
  Sleep, 500
  Gui, Destroy
  return
}
else
{
  Gui, Destroy
  Gui, font, s55 cRed, Verdana ; font size
  Gui, Color, Green
  Gui +LastFound  ; Make the GUI window the last found window for use by the line below.
  WinSet, TransColor, Green
  Gui -Caption
  Gui, Add, Text,, OFF
  Gui, Show
  Sleep, 500
  Gui, Destroy
  return
}