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(명령)를 사용하는 방법을 배워야 합니다. 활성 여부에 관계없이 창이나 해당 컨트롤에 직접 입력을 보내려면 다음을 사용할 수 있습니다.제어 전송명령.