Autohotkey#48 Controlsend 와 SetTitleMatchMode

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Focusing된 window에서 키값을 보낼때는 Send, SendInput, SendRaw를 사용하는데, background window에 키값을 보낼 때는 어떤 함수를 사용하면 될까요? 바로 ControlSend 와 ControlSendRaw등을 사용하면 됩니다. 그런데 어떨때는 해당 창이 정확히 인식이 되고 어떨때는 인식이 안 됩니다. 왜 그럴까요? SetTitleMatchMode로 한번 조정해 보시면 그 차이를 인식할 수 있을 것입니다. 이 방법을 이용해서 스크립트를 제작해 놓으면 백그라운로드에서 프로그램을 실행시킬 수 있으므로 별도로 다른 프로그램등을 실행시킬 수 있어서 2배이상으로 효율이 커집니다. 자세한 내용은 아래 링크에서 참고하세요.
    autohotkey4aut...

Комментарии • 5

  • @dhxbcmd
    @dhxbcmd 2 года назад

    영상 잘봤습니다. 항상 응원합니다.

    • @mentang
      @mentang  2 года назад

      감사합니다.

  • @MrHhs006
    @MrHhs006 6 месяцев назад

    ;이코드 잘못된 부분 있으면 알려주세요?
    #SingleInstance Force ;최근에실행시킨 스크립트 하나만 실행되는것
    SetWorkingDir %A_ScriptDir%, FileSelectFolder ;작업 기본경로 설정 (A_ScriptDir : 스크립트가 있는 경로위치로 마지막의 \ 는 제외됨, A_WorkingDir : 파일 디폴트 디렉토리)
    SendMode Input ;입력의 재생속도가 매우빠름 (키 딜레이설정 사용못함)
    SetTitleMatchMode 2 ;윈타이틀 파라미터에대한 어떤거를 설정하는것(옵션이, 1:앞에서부터 순차적으로 맞으면 맞는걸로, 2: 어떤항목안의 어딘가에 하여튼 이 윈타이틀을 포함하고 있으면 매치한걸로 인식하는것, 3:완전히 매치할때만 일치하는것)
    #WinActivateForce
    SetControlDelay 1 ;컨트롤 관련 명령어에 적용되는 지연시간
    SetWinDelay 0 ;창 관련 명령어에 적용되는 지연시간
    SetKeyDelay -1 ;키보드 지연시간
    SetMouseDelay -1 ;마우스 지연시간
    SetBatchLines -1 ;스크립트 지연시간( -1은 CPU 사용량을 높여 실행속도 빠르게 해주기 )
    CoordMode, Mouse, Screen ;마우스를 바탕화면 좌표기준으로 해주는것
    run, 새 텍스트 문서.txt ;새 텍스트 문서.txt 파일 열어서
    WinActivate, 새 텍스트 문서.txt - Windows 메모장 ; 메모장 창 활성화시키고
    WinWaitActive,새 텍스트 문서.txt - Windows 메모장 ; 창이 활성화될때까지 기다림
    WinSet, AlwaysOnTop, On, ahk_class Notepad
    WinGetPos, X, Y, Width, Height, Untitled - Notepad ; 창의 현재 위치와크기 가져오기
    mbMove:
    if (WinExist("ahk_exe NOTEPAD.EXE")) {
    WinMove, % "ahk_exe NOTEPAD.EXE", , 20, 20 ;원하는 좌표위치 20,20으로 이동
    SetTimer, mbMove, Off
    MsgBox, 이동됨 ;메시지 박스가 표시되고 1초마다 메시지 박스가 뜹니다.
    }
    return
    f3:: ExitApp ;실행중인 스크립트 종료

    • @mentang
      @mentang  5 месяцев назад

      답변이 늦어서 미안합니다.
      우선 공유해 주신 내용을 가지고 실제로 디버깅을 해 보면
      1) "run, 새 텍스트 문서.txt ;새 텍스트 문서.txt 퍼알열어서" 이 부분이 실행이 되지 않습니다. 아마도 notepad.exe를 실행시키려고 하신 거 같은데 일단 run, Notepad.exe로 수정하시기 바랍니다.
      2) winactivate문장의 경우 winactivate, ahk_exe Notepad.exe 형식으로 사용하셔야 합니다.
      3) SetTimer 실행하는 부분이 자기 자신을 호출하는 방법은 위험합니다. 별도로 시작할 수 있도록 분리하는게 좋겠습니다.
      우선 3가지 부분을 수정한 후 다시 디버깅 하기를 권고드립니다.

    • @MrHhs006
      @MrHhs006 5 месяцев назад

      바탕화면에 새 텍스트 문서.txt파일열어서 에요 ...퍼알은오타에요