2011-08-08 3 views
0

정확히 어떻게하면 C++ 프로그램이 다른 프로그램과 상호 작용하고 내가 클릭 한 것과 상호 작용할 수 있습니까?C++ 프로그램을 마우스 클릭 및 X Window System 응용 프로그램과 상호 작용하는 방법은 무엇입니까?

예 : MSN 자동 회신 프로그램을 만들고 싶으면 입력하려는 내용을 묻는 대화 상자가 나타나고 프로그램이 MSN 채팅 상자에 붙여 넣을 것입니다.

+0

참고로 이미 자동 회신을 지원하는 MSN 확장 프로그램이 있습니다. http://www.msgplus.net/ 포럼에 질문 할 수 있습니까? – darvids0n

+0

MSN 확장 기능을 만드는 것은 실제적인 문제가 아닙니다. 나는 C++을 x 프로그램과 상호 작용시키는 방법을 묻고있다. – BobYule

+0

내 의견은 MSN 확장 중 하나에 관한 것이 아닙니다. 나는 이미 이렇게 쓰여진 상호 작용을 가진 프리웨어라고합니다. 예를 들어 MsgPlus의 자동 응답 스크립트는 다음과 같습니다. http://www.msghelp.net/showthread.php?tid=94948&pid=997399#pid997399 Windows 핸들 찾기 및 매핑 키 입력에 대한 user32.dll 사용법을 볼 수 있습니다 (아마도 C++에서도 그렇게 할 것입니다). – darvids0n

답변

1

그것은 그 자체로 X가이 작업을 수행하지 않음을 밝혀,하지만 당신은 XTEST 확장을 설치하여 그것을 가능하게 할 수 있습니다 (그들에 대한 책을 읽은 후와 ...)

다른 접근 방식이 주입하는 것 운영 체제 키보드/마우스 레벨의 이벤트 또는 대상 프로그램의 기존 인터페이스 또는 패치 된 인터페이스를 사용하십시오. unix-ish 도구는 stdin에서 명령 입력을 받아들이거나 스크립팅 목적으로 명령 행 옵션을 통해 많이 수행하도록 설정할 수 있습니다.

+0

자신 만의 창 관리자를 작성하면 어떨까요? –

+0

"X만으로는이 작업을 수행 할 수 없습니다."실제로는 그렇습니다. 역겨운 XLib (또는 다소 덜 역겨운'xcb')를 사용해야 만하지만 요점은 당신이 윈도우 목록을 쿼리하고 윈도우에 이벤트를 보낼 수 있다는 것이다. 지금 막 XLib를 살펴보기 시작 했으므로 정확한 답을 게시 할 수는 없지만 실제로 할 수 있다고 확신합니다. 문제는 버튼이란 무엇인지 알아 내지 못하는 것입니다. –

+0

@Alexandre C. 나는 고정 된 위치 마우스 클릭이나 키 이벤트를 다른 프로세스의 창에 단순히 전달한 예제 코드에 관심이 있습니다. 이는 주제에 대한 지난 연구에서 발견 한 모든 내용에 위배됩니다. –

관련 문제