2015-04-03 2 views
0

Я хочу, чтобы мой код мог регистрироваться, если мышь нажата, и сделайте что-нибудь, когда это произойдет, но также, чтобы иметь возможность зарегистрируйтесь, если мышь удерживается и не прерывает удерживание мыши, если это так. Например,Если мышь нажата, сделайте одно, если мышь удерживается, делайте обычную вещь

If AutoCAD is open 
     If mbutton is clicked 
      click the escape key 
     If mbutton is held down 
      be able to use the mbutton held down as usual 
    End 

Я пробовал несколько различных способов сделать это, но у меня нет знаний, чтобы сделать это точно. У меня есть «Если AutoCAD открыт», а части «нажмите клавишу« escape-ключ »вниз, просто не используйте« mbutton как обычно, если удерживать часть ».

Спасибо за любую помощь, которую вы можете предоставить!

+0

Почему бы вам не предоставить нам код, который у вас уже есть? – Blauhirn

ответ

0

Если я правильно Вас понял, вы ищете UP ключевое слово:

Слово UP может следовать за именем горячей клавиши, чтобы вызвать горячую клавишу огня при отпускании клавиши, а не когда клавиша нажата.

(documentation)

#if autocad() 
MButton Up:: 
send {escape} 
return 
#if 

autocad() { 
    return true 
} 
+0

Этот скрипт по-прежнему будет отправлять Escape после удержания MButton. –

+0

ну, я понял ОП так, как он этого хочет. Возможно, вы правы. – Blauhirn

2

Это было немного хитрый. Измените линию #IfWinExist соответственно. Вы можете настроить длительность так, чтобы вы считали «удерживающим» MButton

SetTitleMatchMode, 2 

#IfWinExist AutoCAD 

~MButton:: 
    duration := 100 
    start := A_TickCount 

    While(GetKeyState("MButton")) 
    { 
     if ((A_TickCount - start) > duration) 
     { 
      KeyWait, MButton 
      Send {MButton Up} 
      Return 
     } 
    } 
    Send, {Escape} 
    Return 

#IfWinExist AutoCAD 
Смежные вопросы