Larry Osterman ha scritto su "Perché Control-Alt-Elimina l'attenzione sicura sequenza (SAS)? " nel 2005. La risposta è così breve che non è necessario riassumerlo, sebbene io elimini alcune note a margine.
When we were designing NT 3.1, ... we needed to have a keystroke sequence that couldn't be intercepted by any application. ...
It turned out that the only keystroke combination that wasn't already being used by a shipping application was control-alt-del, because that was used to reboot the computer. And thus was born the Control-Alt-Del to log in.
Quindi ecco fatto, il motivo per cui Ctrl + Alt + Canc è stato scelto per la sequenza di attenzione sicura.
Molto probabilmente sul DOS non c'era una vera ragione tecnica per cui non si potesse aver preso Ctrl + Alt + Canc e usato per qualche altro scopo, ma nessuno sano di mente l'avrebbe fatto in un'applicazione DOS dal momento che romperebbe così tante delle aspettative degli utenti su come funzionavano i loro computer. Si noti che Windows 3.x (quando è in esecuzione in modalità 386 avanzata, non credo che lo abbia fatto quando si esegue in modalità standard, e certamente non in Win 3.0 in modalità reale) catturato e gestito da Ctrl + Alt + Canc, il che dimostra che potrebbe essere fatto anche quando è in esecuzione su BIOS + DOS. Probabilmente il codice che faceva funzionare il grunt era costituito da poche istruzioni di linguaggio assembly, agganciato al vettore di interrupt appropriato, che cercava DEL con i set di modificatori CTRL e ALT, facendo un po 'di magia se trovava quella particolare combinazione. / p>
Per quanto riguarda la simulazione, andrei con "perché vorresti?". Ricordo di aver letto da qualche parte (forse era nel blog di Larry Osterman, forse era completamente diverso) che tecnicamente il desktop sicuro è una sessione separata avviata e gestita dal codice di inizializzazione di Windows, e quindi inaccessibile a qualsiasi processo non privilegiato. Detto questo, apparentemente c'è una funzione SendSAS () in SAS.DLL (che su Win7 è in System32) che simulerà l'utente premendo Ctrl + Alt + Canc; vedi SendSas passo dopo passo per un breve esempio di codice. Avvertenza: non l'ho provato io stesso.