자동화

조회 수 3373 추천 0 댓글 10

python 을 조금 알아서 pyautogui로 매크로 사용하다가 

다른 작업도 할 겸 비활성 찾고있는데 클릭조건도 신기하고

마우스 무브도 생각대로 안움직이네요 좌표를 넣어주어도 안움직이고 (값은 뜨던데, 원하는 곳을 클릭 안함)


원하는 프로그램사이즈 내에서 비활성 이미지 캡처를 통해서 좌표를 찾고 그 지점을 클릭하기 까지 알고 싶어요 


지식 공유로 사례는 치킨 기프티콘 등으로 드리고 싶어요.


벌써 서치만 일주일째 하고 있어서 지치네요. 


오픈카톡이 안올라가서 댓글 남겨주시면 사례드리고 싶습니다.


  • 오크의제왕 2022.01.12 10:58

    일반적인 활성/비활성 신호를 소프트웨어 방식으로 입력하게 되면 해당 프로그램에서 캐치한 후 무력화(동작을 시키지 않음) 시킵니다. pyautogui 신호나 기타 c++/c# 등의 mousemove/click 등의 신호를 쏘게 되어도 프로그램에서 다 캐치해서 무력화(처리되지 않도록) 하게 되요.


    에뮬레이터(ld/nox)등은 그런 행위(입력신호차단)를 하지 않기때문에 잘 동작하지만 일반적인 PC 게임에는 기본으로 다 적용이 되지 않게 할겁니다.


    그럼 남은 방법은 하드웨어 방식으로 신호를 쏴줘야 하는데 이는 검색을 해보셔서 개발하시면 될 것 같습니다.


    아마 특정 라이브러리를 사용해서 하드웨어 신호를 쏴주는 방식을 사용하거나  아두이노 방식으로 신호를 쏘시면 될 겁니다.

  • 오토공부 2022.01.12 14:35
    안녕하세요.
    댓글 감사합니다.
    제가 하려는게 특정 게임 소프트웨어가 아니라 크롬등 과 같은 웹 내에 있는 게임을 비활성 신호로 동작시키고 싶어서 입니다.
    웹은 신호를 거를 수 없는 걸로 알고 있는데 맞을까요?
    혹시 웹 비활성 매크로를 아신다면 지식 공유 부탁드립니다...
    좋은하루 보내세요. (수시로 댓글 확인해보겠습니다.)
  • 오크의제왕 2022.01.12 14:55
    Pyautogui는 활성 방식 인 것 같네요.
    비활성방식으로 하시려면 해당 윈도우 창 값의 핸들값을 얻어서 해당 창에 키보드/마우스 이벤트에 메세지를 보내는 형태로 사용하셔야 합니다. pywinauto 모듈에대해서 좀 찾아보시면 이해가 조금더 되실 것 같네요.. ㅎㅎ
  • 오토공부 2022.01.12 15:00
    네 pyautogui는 활성방식이라 이번에 비활성방식으로 갈아 치우려고요
    그래서 win32 (pypiwin32) 자료가 좀 있어서 지금 테스트 중인데
    특정 웹 브라우저를 인식은 한 상태에서 창내에 마우스포인터가 있으면 win32 SendMessage를 통해 클릭은 가능한데 마우스 포인터가 다른 곳에 있으면 좌표를 입력해도 클릭 반응이 없어서 곤란한 상황이네요.
    이거 해결 되면 금방 비활성 캡처 따고 좌표 값 추정은 일도 아닐텐데 말이죠 ㅠㅠ
  • 오토공부 2022.01.12 15:10
    <pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'JetBrains Mono',monospace;font-size:9.8pt;"><span style="color:#cc7832;">def </span><span style="color:#ffc66d;">click</span>(x<span style="color:#cc7832;">,</span>y):<br /> hWnd = win32gui.FindWindow(<span style="color:#cc7832;">None, </span><span style="color:#6a8759;">"ac2"</span>)<br /> lParam = win32api.MAKELONG(x<span style="color:#cc7832;">, </span>y)<br /><br /> hWnd1 = win32gui.FindWindowEx(hWnd<span style="color:#cc7832;">, None, None, None</span>)<br /> win32gui.SendMessage(hWnd1<span style="color:#cc7832;">, </span>win32con.WM_LBUTTONDOWN<span style="color:#cc7832;">, </span>win32con.MK_LBUTTON<span style="color:#cc7832;">, </span>lParam)<br /> win32gui.SendMessage(hWnd1<span style="color:#cc7832;">, </span>win32con.WM_LBUTTONUP<span style="color:#cc7832;">, None, </span>lParam)<br /><br /></pre>이렇게 간단한 코드에 x,y 좌표는 spy 내에서 특정 창 내 window x,y값 보고 따온건데 마음대로 안되네요.
  • 오크의제왕 2022.01.12 15:14
    추가로 윈도우 좌표계는 스크린 좌표와 클라이언트 좌표가 있습니다. 좌표 주실때 위 두개의 개념 차이를 이해하셔야 제대로 사용 하실 수 있으실겁니다
  • 오토공부 2022.01.12 15:35
    네 제가 웹 화면 인식해서 받아오면 client 좌표로 입력하거든요..
    postmessage 는 클릭조차 응답이 없었습니다.
    좌표를 찾다보니 16비트로 변환하는 자료도 보고 적용해봤는데 똑같이 무응답이라 이렇게 글 쓰고 있는데
    참고할 만한 자료가 있을까요..
  • 오크의제왕 2022.01.12 15:53
    해당 프로그램이나 창이 win32가 아니어서 작동을 안할수도있겠네요.. pywinauto 로 uia 옵션 주고 해보시겠어요?
  • 오토공부 2022.01.12 16:06
    바로 해보겠습니다.
  • 진해살아요 2022.01.23 09:11
    ㅂㅋㄹㅌ 하시려고 하시나요

List of Articles
분류 제목 글쓴이 최근변경 추천
자유 프로그래밍 게시판 소개 피카부 2023.04.01 0/0
질문 메이플 거탐 관련 7 TAIIllL 2020.05.22 0/0
질문 완전 좋은거 나옴 한번씩 봐보세요 6 사스테 2018.03.11 0/0
질문 c#으로된 매크로 예제좀 얻을수 있을까요? maww 2018.03.06 0/0
질문 C# 이미지 검색 질문 1 maww 2018.03.21 0/0
질문 C# 질문이 있습니다. 3 Hello12 2018.03.21 0/0
질문 c# 윈폼 SendMessage 봉구스박보검 2018.04.02 0/0
질문 DirectX 캡처는 win7에서는 안되나요? 5 몰라무서워 2018.04.21 0/0
질문 AutoHotkey.dll c#에 참조추가해서 using으로 사용하는 법 2 봉구스박보검 2018.04.06 0/0
질문 C#으로 매크로 스샷나오면 클릭하기 구현방법질문입니다 7 까만사막 2018.04.11 0/0
질문 오토핫키 명령어를 c#에서 사용하는 방법 7 봉구스박보검 2019.06.09 0/0
질문 c#으로 매크로를 만드는 이유좀 알려주실분있나요? 2 광대승천 2018.05.23 0/0
질문 C# 한가지 질문이 있습니다. 1 수로 2018.06.24 0/0
질문 C# 콤보박스 질문이 있습니다. 2 수로 2018.06.27 0/0
질문 C# 모모앱플레이어에 마우스휠 이벤트를 먹게 하고 싶... kkmm 2018.07.04 0/0
질문 C# 콤보박스 리스트뷰 질문이 있습니다. 3 수로 2018.07.17 0/0
질문 c# param 질문있습니다 1 fofoh 2018.07.15 0/0
질문 C# 이미지인식에 대해서 질문이 있습니다. 1 수로 2018.07.25 0/0
질문 c# 이용하시는분 이미지 비교 어떻게 하시나요? 2 가끔보는하늘 2018.07.24 0/0
질문 혹시 앱플레이어를 최소화로 해서 돌리는건 뭘로하는건... 컴공부합시다 2018.08.04 0/0
Board Pagination Prev 1 2345678910 11 Next
/ 11

전체 최신 인기글

전체 주간 인기글