누군가가 특정 창에서 특정 단추를 마우스로 클릭하는 것을 가로 채기 위해 사용할 Windows API 함수를 찾아 낼 수 있습니까? 저는 스파이 ++를 사용했고 파인더 툴을 윈도우의 버튼이나 다른 것으로 옮기면 핸들러와 다른 것들에 대한 정보를 읽을 수 있다는 것을 알았습니다. 그래서 어떤 행동이 수행되기 전에 마우스 클릭을 가로 채서 코드를 삽입하는 방법이 있습니다. 이에 대해 어떤 생각이라도 공유해 주셔서 감사합니다.가로 채기 마우스 클릭
답변
:
대상 윈도우의에서
WH_CALLWNDPROC
메시지 후크를 설치SetWindowsHookEx()
을 사용할 수 있습니다 thread를 호출 한 다음 훅 콜백은 대상 창 자체에WM_LBUTTON(DOWN|UP)
과 같은 창 메시지를 처리하거나 대상 창 부모에BN_CLICKED
과 같은 창 메시지를 처리 할 수 있습니다. 주의 할 점은 타겟 프로세스에 훅을 삽입 할 수 있도록 DLL에 콜백을 구현해야한다는 것입니다.GetWindowThreadProcessId()
을 사용하여 대상 창의 스레드 ID를 가져올 수 있습니다.이 변형은
SetWindowsHookEx()
대신WH_GETMESSAGE
훅을 설치 한 다음PostMessage()
을 사용하여 대상 창에 사용자 지정 창 메시지를 게시 할 수 있습니다. 그런 다음 후크 콜백은SetWindowLongPtr()
또는SetWindowSubclass()
을 사용하여 추가 메시지 처리를 위해 대상 윈도우를 직접 및/또는 상위 클래스로 서브 클래스화할 수 있습니다.SetWinEventHook()
을 사용하여EVENT_OBJECT_INVOKED
이벤트 (예 : 단추 클릭)를 모니터링 할 수 있습니다.WINEVENT_OUTOFCONTEXT
플래그를 사용하는 경우 DLL이 필요하지 않지만 설치 스레드가 활성 메시지 루프를 필요로하므로 프로세스 경계에서 이벤트를 처리 할 수 있습니다.
Windows 후크를 설정하려면 SetWindowsHookEx API를 호출해야합니다. 여기에 소스 코드와 함께 기사입니다, 그것은 그것의 사용법을 보여줍니다 Hooks and DLLs
@RemyLebeau 나는 그것을하는 한 방법을 게시했습니다. 내 답변과 다를 경우 답변을 별도로 게시하십시오. –
- 1. 마우스/키보드 이벤트를 가로 채기
- 2. 창에서 마우스 이벤트 가로 채기
- 3. 브라우저의 개발자 도구에서 마우스 포인터를 가로 채기
- 4. JQuery - iframe 내부에서 클릭 링크 가로 채기
- 5. 하나의보기에서 가로 채기 및 차단 클릭
- 6. 마우스가 컨트롤 위로 움직일 때 마우스 클릭을 가로 채기
- 7. 모든 마우스 클릭을 WPF 응용 프로그램으로 가로 채기
- 8. PreviewMouseDown SelectedItemChanged 이벤트 가로 채기
- 9. 프로세스에서 신호를 가로 채기
- 10. 가로 채기 didAddSubview
- 11. Silverlight에서 ViewModels 가로 채기
- 12. form_for를 가로 채기
- 13. 가로 채기 방법
- 14. OS로부터 입력을 가로 채기
- 15. UpdatePanel 게시물의 가로 채기
- 16. 반환을 가로 채기
- 17. WKWebView로 가로 채기 요청
- 18. iOS7에서 뒤로 가로 채기
- 19. WebView 가로 채기
- 20. cellSubmit jqGrid를 가로 채기
- 21. MEF의 종속성을 가로 채기
- 22. 가로 채기 문제 해결
- 23. Android에서 뒤로 가로 채기
- 24. 가로 채기 onOptionsItemSelected
- 25. 가로 채기 싱글 인스턴스
- 26. 렌더링 된 가로 채기
- 27. DataGrid의 이벤트 가로 채기
- 28. 가로 채기 UITextField 터치
- 29. heapq 가로 채기
- 30. 들어오는 SMS를 가로 채기
이것은 가장 좋은 답변이지만 코드 예제가 필요합니다. – FindOutIslamNow