방개
비밀번호를 잊어버리셨나요?

질문

비활성입력 관련 질문드립니다!

    • 글자 크기

프날님 안녕하세요!

항상 오토핫키 강좌 잘 보고 있습니다!

여러가지 내용들을 핵심내용만 추려서 강의 해주셔서

너무너무 감사드립니다.

 

비활성입력에 대해 공부를 하던 중

문제가 생겨서 이렇게 질문 드립니다.

 

 - 목표 : 프로그램 내부에 비활성입력으로 특정 값 입력

 - 현재상태 :

     1) 프로그램 활성화(winactivate) 의 경우 비활성 입력 잘됨.

     2) 프로그램 활성화 되지 않았을 경우 비활성 입력 안됨.

 - 문제점 스터디 :

   1) 비활성 입력의 경우 주소(classnn)을 명확히 넣지 않아 생기는 문제라 생각함

   2) 관련 자료를 찾아보니 window 창은 부모 window와 자식 window로 구성되어 있으며 각각의 handle값이 다름

   3) 자식 window handle 값을 controlsend , ahk_id에 넣어 비활성입력을 진행하고자 함.

   4) win32 dll을 이용하여 ahk에서 child window의 handle을 얻을 수 있음을 확인.(구현은 못함)

 

이런 식으로 목표를 달성하기 위해 스터디 중이긴 합니다만, 제가 win32에 사용되는 함수를 완전히 이해하지 못하였으며, dllcall에 대해서도 이해가 부족한 것 같습니다.

 

혹시 ahk에서 dllcall을 사용하지 않고 childwindow의 handle을 얻을 수 있는 방법이 있는지 궁금합니다.

혹은 제가 비활성입력에 대해서 잘못된 접근을 하고 있는지도 궁금합니다.

 

ahk기초 강좌부터 gdip사용까지 많은걸 알려주셔서 너무너무 감사드립니다.

미리 새해 복 많이 받으세요 :)

    • 글자 크기
댓글 2
  • 2020.12.27 22:21 댓글

    분석은 거의 정확하십니다. 자식창도 별도의 window이기 때문에 핸들값을 따로 가지고 있죠.

    부모창의 이름 가지고 자식창의 이름을 가져오려면 제가 알기론 dllcall을 써야하는 것으로 알고있습니다. 기억은 잘 안나지만 winapi로 C#에서 같은 작업을 했던 기억이 있네요.

  • 프날님께
    방깨글쓴이
    2020.12.28 18:10 댓글

    프날님 답변 감사드립니다.

    말씀하신 내용 참고하여 조금 더 스터디 해보겠습니다.

     

    본문에도 말씀드렸지만, 늘 가독성 있는 좋은 강의 해주셔서 감사드립니다!

    연말 연시 건강 잘 챙기시구, 코로나 늘 조심하시기 바랍니다.

댓글 달기

서버에 요청 중입니다. 잠시만 기다려 주십시오...