특정 창에 단축키를 보내는 AHK 스크립트

특정 창에 단축키를 보내는 AHK 스크립트

3개의 서로 다른 단축키를 보내는 ahk 스크립트가 필요합니다(f1을 누르고, 예를 들어 특정(포커) 응용 프로그램의 활성 창에 f5를 보냅니다). 하지만 병렬로 실행되는 다른 응용 프로그램의 경우 f1은 f1이어야 합니다.

누가 도와줄 수 있나요?

답변1

포커 애플리케이션의 제목이 항상 으로 끝나지만 - NLH클래스가 인 창과 일치시키고 싶지 않은 경우 PokerStarsTableFrameClass다음을 사용하세요.

F1::
WinGetTitle, Title, A
WinGetClass, Class, A
if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))
    SendPlay {F5}
else
    SendPlay {F1}
return

작동 원리

  • WinGet(Title|Class), (Title|Class), A활성( A) 창의 title|class를 읽고 이를 변수에 저장합니다 Title|Class.

  • - NLH$정규식로 끝나는 모든 문자열과 일치합니다 - NLH. ( $문자열의 끝입니다)

  • if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))정규식이 일치하는지 테스트합니다 Title.하지만Class예외와는 다릅니다 .

    • 그렇다면 활성 창으로 SendPlay {F5}보냅니다 .F5

    • 그렇지 않으면 활성 창에 SendPlay {F1}법선을 보냅니다 .F1

답변2

AutoHotkey 스크립트는 필요하지 않습니다. 원하는 것을 달성하려면 사용 가능한 API(명령)를 사용하는 방법을 배워야 합니다. 활성 여부에 관계없이 창이나 해당 컨트롤에 직접 입력을 보내려면 다음을 사용할 수 있습니다.제어 전송명령.

관련 정보