2017-05-09 9 views
0

보내기 명령의 작동 방식이 매우 이상합니다.한 줄 대 여러 줄 보내기

여기는 내 클릭 스크립트로, Control-Click을 에뮬레이션합니다. (Control-Click이 비활성화 된 사이트의 경우).

#IfWinActive, ahk_exe chrome.exe 
SetKeyDelay, 2000 ; Just for testing. In future, here should be something more fast and reliable 
^LButton:: 
    GetKeyState, state, CapsLock, T 
    if state = D 
    { 
     Send, {Click Right} 
     Send, {Down} 
     Send, {Enter} 
    } 
return 
#IfWinActive 

이 스크립트는 최종 버전이 아니며 속도가 느리지 만 매우 안정적이지는 않지만 일반적으로 작동합니다. 예를 들어 StackOverflow의 메인 페이지에서 테스트 할 수 있습니다. 나는 모두가 한 줄에 명령을 보내 배치하면

그러나, 즉 : 다음

#IfWinActive, ahk_exe chrome.exe 
SetKeyDelay, 2000 
^LButton:: 
    GetKeyState, state, CapsLock, T 
    if state = D 
     Send, {Click Right}{Down}{Enter} 
return 
#IfWinActive 

가끔 페이지를 스크롤하는 대신 새 탭에서 메뉴 항목 ("링크 열기를 선택하는"아래 "키를 누를 때 ").

왜 그런가? 어떻게 해결 될 수 있을까요?

답변

1

은 아마도

  1. {마우스 오른쪽을 클릭}

    는 키 누름으로 간주되지 않으며 SetKeyDelay의 영향을받지 않습니다.
  2. {마우스 오른쪽을 클릭} 링크를 바로 클릭하지 않는
  3. {마우스 오른쪽을 클릭} 페이지가 준비되기 전에, 당신이 Send, {Click Right}{Down}{Enter}을 대체 할 수 있어야한다

에 관계없이 실행 :

MouseClick Middle 

크롬이 새 탭에서 링크를 열도록 지시합니다.

+0

실제 사이트에서 테스트해야합니다. Ctrl-Click이 비활성화 된 곳은 거의 없었지만 지금은 찾을 수 없습니다. 하지만 하나의 대 다중 라인이 아닌 차이를 보내려면 약간 이상한가요? AHK 버그와 같은 것입니까? (나는 많은 차이에서 많은 차이를 보았다). – jsv

+0

AHK에는 여러 가지 방법을 사용하여 키 스트로크를 보내는 것과 관련된 많은 기능이있는 것 같습니다. send, sendinput, sendplay, sendraw 및 sendXXXX가 작동하는 방법을 수정하는 많은 구성 설정이 있습니다. 그리고 한 버전의 Windows에서 작동하는 것이 다른 버전에서 반드시 작동하는 것은 아닙니다. 나는 AHK가 Windows 플랫폼의 불일치를 해결하기 위해 뒤로 뒤집어 썼다고 생각합니다. 제 의견으로는 최선의 노력으로 "버그"가 아닙니다. AHK와 협력하면서 일하는 한 가지 방법을 찾듯이 올바른 일을하는 방법을 배우는 것에 관해서는 덜합니다. –

+0

"AHK 작업 [...]"- 우수한 견적. 이는 AHK를 좀더 예측 가능한 JS 및 Python과 비교할 때 내 느낌이기도합니다. 서로 다른 전송 모드 간의 차이점을 알고 있지만이 단일 멀티 라인 문제는 공식 문서에서는 언급되지 않습니다. 그것이 내가 "이상한"이라고 부르는 이유입니다. – jsv