cmd.com ウィンドウを、Control-C が Python への SIGINT シグナルを生成しないモード (重要な場合は ActiveState) に設定したいと考えています。
signal モジュールを使用して SIGINT を処理できることはわかっています。問題は、SIGINT の処理が遅すぎることです。処理されるまでに、すでにシステム コールが中断されています。
*nix の「raw」モードに相当するものが欲しいです。入力をキューに入れるだけで、アプリケーションが安全に読み取れるようになったら、読み取ります。
おかしなことに、msvcrt.getch() は Control-C を文字として返すようです。しかし、それはプログラムが getch() 自体によってブロックされている間のみ機能します。別のシステム コール (スリープ、例を使用するため) にいる場合、SIGINT を取得します。