Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De toetsencombinaties CTRL+C en CTRL+BREAK ontvangen speciale verwerking door consoleprocessen. Wanneer een consolevenster de toetsenbordfocus heeft, wordt CTRL+C of CTRL+BREAK standaard behandeld als een signaal (SIGINT of SIGBREAK) en niet als toetsenbordinvoer. Deze signalen worden standaard doorgegeven aan alle consoleprocessen die aan de console zijn gekoppeld. (Losgekoppelde processen worden niet beïnvloed. Zie Het maken van een console.) Het systeem maakt een nieuwe thread in elk clientproces om de gebeurtenis af te handelen. De thread genereert een uitzondering als het proces wordt opgespoord. Het foutopsporingsprogramma kan de uitzondering verwerken of doorgaan met de uitzondering die niet is verwerkt.
CTRL+BREAK wordt altijd behandeld als een signaal, maar een toepassing kan het standaardGEDRAG van CTRL+C op twee manieren wijzigen waardoor de handlerfuncties niet kunnen worden aangeroepen:
- Met de functie SetConsoleMode kan de ENABLE_PROCESSED_INPUT invoermodus voor de invoerbuffer van een console worden uitgeschakeld, zodat Ctrl+C wordt gerapporteerd als toetsenbordinvoer in plaats van als signaal.
- Wanneer SetConsoleCtrlHandler wordt aangeroepen met NULL - en TRUE-waarden voor de parameters, negeert het aanroepende proces Ctrl+C-signalen. Normale Ctrl+C-verwerking wordt hersteld door SetConsoleCtrlHandler aan te roepen met NULL - en FALSE-waarden . Dit kenmerk van het negeren of niet negeren van Ctrl+C-signalen wordt overgenomen door onderliggende processen, maar kan worden ingeschakeld of uitgeschakeld door een proces zonder dat dit van invloed is op bestaande processen.
Zie de callbackdocumentatie van Handler Routine voor meer informatie over hoe deze signalen worden verwerkt, inclusief time-outs.