2013-07-30 7 views
2

나는 결국 스크립트를 주 스크립트에서 모두 시작하고 중지 할 수있는 기능을 가진 게임을 제어합니다.'ESC'또는 서브 프로세스로의 신호 보내기

그러나 게임 중 하나는 'ESC'키를 눌러 정상적으로 멈출 수 있습니다. 이것을 어떻게 신호 또는 이와 유사한 것으로 해석 할 수 있습니까?

* 게임은 gamename.Popen()으로 시작한 다음 대개 SIGINT 또는 SIGQUIT를 보내 중지됩니다.

아이디어가 있으십니까?

+0

http://stackoverflow.com/questions/5714072/simulate-keystroke-in-linux-with-python –

답변

1

그러나 게임 중 하나는 'ESC'키를 눌러 정상적으로 멈출 수 있습니다. 이것을 어떻게 신호 또는 이와 유사한 것으로 해석 할 수 있습니까?

수 없습니다. 당신은 내가 그 자신의 입력을 잡아 의심스럽고 Esc을 보낼 수있는 표준 입력을 사용하지 않는 하위 프로세스에서 설계 오류를 처리하려고합니다. 이 가정이 맞지 않으면 알려주십시오.

이 게임에서 SIGTERM을 사용해 보았습니까? 이것은 더 전통적인 "clean up and exit"신호이며 SIGINT와 SIGQUIT를 기본값으로 남겨 두면서 SIGTERM을 정상적으로 처리 할 코드를 작성하는 사람을 상상할 수 있습니다.

+0

나는 당신이 말하는 것에 동의합니다. 게임에는 디자인 문제가 있으며 나는 스크립트를 SIGTERM으로 끝낼 것이라고 결론을 내 렸으며 게임을 업데이트해야합니다. – Skowt

0

키 스트로크를 보내기 위해 PIPE를 사용하여 제어하는 ​​경우 chr(0x1b)을 보내야 트릭을 수행 할 수 있습니다.