1

Тема: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Уважаемые форумчане, я использую два следующих скрипта в разных файлах


 ; После двойного нажатия «End» в конец строки появляется двоеточие (:)
End:: Gosub, PressCount            ; Запускается счётчик нажатий.
End(1):                            ; Код для одиночного нажатия
  SendInput {End}
Return
End(2):                            ; Код для двойного нажатия
  SendInput ^{vk41}
  SendInput {Right}
 SendInput +{6}
 Return
PressCount:
  Pause_=300    ; Если пауза меньше этого количества миллисекунд, то нажатие
                 ; двойное. Если больше, то оно расценивается как 2 одиночных.
  If not Second
  {
    Second=1
    SetTimer, DoublePress, -%Pause_%
  }
  Else
  {
    Second=0
    SetTimer, %A_ThisHotkey%(2), -1
  }
Return
DoublePress:
  If not Second
    Return
  Second=0
  SetTimer, %A_ThisHotkey%(1), -1
Return 

и скрипт

 ; В конце строки (сегмента) удаляет последний знак
Home:: Gosub, PressCount            ; Запускается счётчик нажатий.
Home(1):                            ; Код для одиночного нажатия
  SendInput {Home}

Return

Home(2):                            ; Код для двойного нажатия
  SendInput ^{vk41}
  SendInput {Right}
 SendInput {Backspace}
   
Return
 
PressCount:
  Pause_=300    ; Если пауза меньше этого количества миллисекунд, то нажатие
                 ; двойное. Если больше, то оно расценивается как 2 одиночных.
  If not Second
  {
    Second=1
    SetTimer, DoublePress, -%Pause_%
  }
  Else
  {
    Second=0
    SetTimer, %A_ThisHotkey%(2), -1
  }
Return

DoublePress:
  If not Second
    Return
  Second=0
  SetTimer, %A_ThisHotkey%(1), -1
Return

Но когда я пытаюсь использовать оба скрипта в одном файле, то между ними возникает конфликт  из-за ошибки
duplicate lable (PressCount:)

Пожалуйста, помогите устранить конфликт между этими скриптами.

2

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

А зачем вам два экземпляра одного и того же кода? Оставьте только один. То же касается и DoublePress.

3 (изменено: serzh82saratov, 2014-12-30 09:36:50)

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами


#UseHook On

End::
Home:: 
    HK := A_ThisHotkey, i := 0
    Loop  {  
        KeyWait, %HK%
        KeyWait, %HK%, D T0.3
    } Until !(++i) || ErrorLevel  
    Try Gosub % HK "_" i
    Return

Home_1:                           
    SendInput {Home} 
    Return

Home_2:                        
    SendInput ^{vk41}{Right}{Backspace}
    Return
    
End_1:                 
    SendInput {End}
    Return
    
End_2:                       
    SendInput ^{vk41}{Right}+{6}
    Return

Если понадобится тройное или 10ти кратное нажатие, нужно просто добавить таковую метку.

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

4

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Уважаемые YMP и serzh82saratov, у меня скрипты РАЗНЫЕ. Они работают, когда живут в разных файлах, но когда я их копирую в один файл, они начинают конфликтовать. Не могли бы вы помочь устранить этот конфликт?

5

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Ошибка "duplicate lable (PressCount:)" переводится так: "Дублируется метка (PressCount:)". То есть одна и та же подпрограмма встречается в коде дважды. Если это две разные по функциональности подпрограммы, можно изменить название одной из них. Если одинаковые - убрать из кода лишнюю.

6

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Они работают, когда живут в разных файлах, но когда я их копирую в один файл

Ничего непонимаю, в 3 посте объединены 2 скрипта из 1 поста в один, как же ещё тут можно помочь?

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

7

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

serzh82saratov пишет:

Ничего непонимаю, в 3 посте объединены 2 скрипта из 1 поста в один, как же ещё тут можно помочь?

Видимо, объединить код, данный топикстартером, а не предлагать свой.

8

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

А как переделать чужой код, ненаписав свой?

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

9

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Скопировать часть одного скрипта и вставить в другой.

10

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Видимо, объединить код, данный топикстартером, а не предлагать свой

И в чём принципиальность, если функционально коды одинаковы? С каких пор, предлагать другие подходы, стало дурным тоном?

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

11

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

serzh82saratov пишет:

И в чём принципиальность, если функционально коды одинаковы? С каких пор, предлагать другие подходы, стало дурным тоном?

Я ответил на вопрос "чем тут можно помочь". Про дурной тон никто не говорил.

12

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

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

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

13

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Ну, тогда смиритесь с тем, что некоторых вещей вы не понимаете.

14

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Например, как так быть увереным, что кому нужно, кто в чём неправ, и что собственное мнение это очевидное вселенское добро не требующее пояснений.

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

15

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Что-то вы всё в кучу свалили. Помочь человеку можно, выполнив его просьбу буквально. Это один из вариантов помощи. Вы же спросили, "как же ещё тут можно помочь". Т.е. не так, как вы помогли, а по-другому. Разве я неправильно ответил?

16

Re: AHK: как разрешить конфликт (Duplicate lable) между двумя скриптами

Всё правильно, все правы, не будем продолжать оффтоп.

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