Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A CTRL+C és a CTRL+BREAK billentyűkombinációk speciális kezelést kapnak a konzolfolyamatok által. Alapértelmezés szerint, ha egy konzolablakban a billentyűzetfókusz van, a CTRL+C vagy a CTRL+BREAK jelként (SIGINT vagy SIGBREAK) és nem billentyűzetbemenetként lesz kezelve. Alapértelmezés szerint ezek a jelek a konzolhoz csatlakoztatott összes konzolfolyamatnak átadódnak. (A leválasztott folyamatokra nincs hatással. Lásd : Konzol létrehozása.) A rendszer minden ügyfélfolyamatban létrehoz egy új szálat az esemény kezeléséhez. A szál kivételt eredményez, ha a folyamat hibakeresés alatt áll. A hibakereső kezelheti a kivételt, vagy kezeletlenül folytathatja a kivételt.
CTRL+A BREAK mindig jelként van kezelve, de az alkalmazás kétféleképpen módosíthatja az alapértelmezett CTRL+C viselkedést, amely megakadályozza a kezelőfüggvények meghívását:
- A SetConsoleMode függvény letilthatja a ENABLE_PROCESSED_INPUT bemeneti módot a konzol bemeneti pufferében, így a CTRL+C billentyűkombinációt a rendszer nem jelként, hanem billentyűzetbemenetként jelenti.
- Ha a SetConsoleCtrlHandlertNULL és TRUE értékekkel hívja meg a paramétereihez, a hívási folyamat figyelmen kívül hagyja a CTRL+C jeleket. A normál CTRL+C feldolgozás a SetConsoleCtrlHandlerNULL és FALSE értékekkel történő meghívásával állítható vissza. A CTRL+C jelek figyelmen kívül hagyásának vagy figyelmen kívül hagyásának attribútumát a gyermekfolyamatok öröklik, de bármely folyamat engedélyezheti vagy letilthatja a meglévő folyamatok befolyásolása nélkül.
A jelek feldolgozásával kapcsolatos további információkért, beleértve az időtúllépéseket is, tekintse meg a Handler Rutin visszahívási dokumentációját.