Facilità di registrazione della tecnologia Assistive Technology

Questo articolo illustra come registrare un'applicazione di accessibilità con facilità di accesso. Spiega anche come personalizzare l'applicazione di accessibilità in modo che funzioni bene con il desktop sicuro.

Facilità di accesso è un'applicazione Pannello di controllo per Microsoft Windows che riunisce le funzionalità per l'accessibilità e la facilità d'uso. Usando facilità di accesso, gli utenti possono configurare i propri computer in base alle proprie esigenze fisiche e cognitive.

Una funzione del Centro accesso semplice consiste nell'aiutare gli utenti a avviare applicazioni di accessibilità, tra cui Assistente vocale, Tastiera sullo schermo e Magnifier. Le applicazioni di terze parti registrate vengono visualizzate anche nel Centro di accesso e possono essere avviate direttamente da lì.

Le applicazioni di accessibilità devono funzionare senza problemi con il desktop sicuro. Il desktop sicuro è l'interfaccia utente visualizzata quando il computer è bloccato (all'accesso o quando l'utente ha bloccato il desktop) e quando l'utente viene richiesto di consentire un'azione potenzialmente non sicura. Per motivi di sicurezza, Windows pone limiti al software di terze parti in esecuzione sul desktop sicuro. Se si vuole che l'applicazione di accessibilità venga eseguita sul desktop sicuro, è necessario registrare l'applicazione con facilità di accesso.

Registrazione con facilità di accesso

Le applicazioni di accessibilità si registrano con Facilità di accesso center creando una o più chiavi del Registro di sistema quando l'applicazione è installata. Nella tabella seguente sono elencate le informazioni contenute nelle chiavi del Registro di sistema.

Nome Descrizione Obbligatorio/Facoltativo Linguaggio
Nome dell'applicazione Nome dell'applicazione, che si trova in un file di risorse. Questo valore del Registro di sistema contiene una stringa in un formato specificato. Questa potrebbe essere una versione localizzata del nome dell'applicazione, se l'applicazione viene localizzata in lingue diverse dall'inglese. Il nome viene visualizzato nel Centro accessi.
Obbligatorio Localizzata
ATExe Nome del file eseguibile o dell'immagine dell'applicazione. Windows usa questo valore per determinare se l'applicazione di accessibilità è in esecuzione.
Obbligatorio Non localizzato
CopySettingsToLockedDesktop Valore DWORD che indica se copiare le impostazioni dell'applicazione di accessibilità nel desktop bloccato.
Se questo valore è 1, l'applicazione può scrivere le impostazioni in un percorso nel Registro utenti e Windows copia le impostazioni nella stessa posizione nel Registro utenti per il desktop bloccato. Ciò consente all'applicazione di mantenere lo stato dal desktop "normale" al desktop bloccato.
Facoltativo Non localizzato
Descrizione Breve descrizione dell'applicazione, da un file di risorse. Questo valore del Registro di sistema contiene una stringa in un formato specificato. Questa potrebbe essere una versione localizzata della descrizione, se l'applicazione è localizzata in lingue diverse dall'inglese. La lunghezza di questa stringa deve essere inferiore a 512 caratteri.
La descrizione viene visualizzata nel Centro accesso per fornire informazioni aggiuntive sull'applicazione di accessibilità all'utente.
Questo valore può essere usato anche per notificare all'utente che l'applicazione non viene usata nel desktop sicuro.
Obbligatorio Localizzata
Profilo Un breve pezzo di XML che specifica le sistemazioni fornite dall'applicazione. Garantisce che l'applicazione venga visualizzata nella categoria corretta nel Centro di accesso.
Obbligatorio Non localizzato
PassiveAutoStartBehavior

Valore DWORD che indica se il comportamento di avvio automatico legacy è abilitato.

Il valore predefinito è 0, che indica che un at richiede un comportamento di avvio automatico legacy. In questo modo l'impostazione "Start after sign-in" per l'opzione AT deve essere selezionata nell'esperienza OOBE (Out Of Box Experience) e Pannello di controllo (vedere Pannello di controllo - Facilità di accesso -> Facilità di accesso ->> Modifica impostazioni di accesso) e avvia automaticamente AT dopo l'interfaccia utente e la schermata di blocco.

Un valore 1 indica che at deve usare il nuovo comportamento di avvio automatico in cui l'impostazione "Start after sign-in" per tale impostazione AT non è selezionata nell'esperienza out of box (OOBE) e Pannello di controllo e l'at viene avviato automaticamente una volta per ogni sessione utente (all'account di accesso) solo se l'impostazione "start after sign-in" viene selezionata.

Facoltativo Non localizzato
SecureDesktopAccommodation Nome di un'applicazione di accessibilità alternativa da eseguire sul desktop sicuro al posto di questa applicazione. L'alternativa può essere un'applicazione diversa, una versione diversa della stessa applicazione, una delle applicazioni di accessibilità incluse in Windows o "nessuno" se non si vuole eseguire alcuna applicazione di accessibilità sul desktop sicuro.
Facoltativo Non localizzato
Profilo semplice Valore che descrive come classificare l'applicazione in una parola o due: utilità di lettura dello schermo, magnifier o tastiera sullo schermo, ad esempio.
Obbligatorio Non localizzato
StartExe Percorso completo dell'eseguibile. Questo valore viene usato per avviare l'applicazione di accessibilità.
Obbligatorio Non localizzato
StartParams Argomenti della riga di comando. Questi valori vengono usati insieme a StartExe per avviare l'applicazione.
Facoltativo Non localizzato
TerminateOnDesktopSwitch Valore DWORD che specifica il modo in cui l'applicazione di accessibilità risponde alle transizioni verso o dal desktop sicuro.
Se questo valore non esiste o è 1, Windows termina e riavvia l'applicazione in ogni transizione verso o dal desktop sicuro. Questo è il comportamento predefinito.
Se questo valore è 0, Windows non termina l'applicazione di accessibilità in una transizione desktop. L'applicazione continua a essere eseguita sul desktop precedente e Windows avvia una nuova istanza nel nuovo desktop se un'istanza non è già in esecuzione.
Facoltativo Non localizzato

Localizzazione

I valori del Registro di sistema di Nome applicazione e Descrizione devono essere localizzati per supportare l'interfaccia utente multilingue (MUI).

Queste stringhe sono nel formato seguente, in cui le parentesi graffe firmano gli elementi necessari e le parentesi quadre indicano un elemento facoltativo.

@<ResDllPath\ResDLLFilename>,-<resID>[;< commento>]

<ResDllPath\ResDLLFilename> è il percorso della DLL della risorsa. Il percorso può contenere variabili ambientali.

<resID> è l'ID risorsa per la stringa.

[commento] contiene eventuali commenti facoltativi.

Esempio:

@%SystemRoot%\system32\anyAT.dll,-5020

Per altre informazioni su MUI, vedere Windows MUI Knowledge Center.

Profilo HCI

Il profilo HCI (Human Computer Interaction) è un modo per determinare quali alloggi fornire in base alle esigenze dell'utente. Le applicazioni di accessibilità devono registrare informazioni sul tipo di disabilità che l'applicazione aiuta a soddisfare.

Il valore del Registro di sistema del profilo contiene XML che descrive il tipo di disabilità destinato all'applicazione di accessibilità. Questo CODICE XML ha il formato seguente:

<HCIModel>
<Accommodation type="disability"/>
</HCIModel>

I valori validi per l'attributo Tipo di alloggio sono i seguenti:

  • visione lieve
  • visione grave
  • cognitivo lieve
  • grave cognitivo
  • dexterity lieve
  • dexterity grave
  • udito lieve
  • grave udito
  • discorso delicato
  • discorso grave

Nota

Per tali valori viene applicata la distinzione tra maiuscole e minuscole.

Se un'applicazione di accessibilità supporta più alloggi, il valore del Registro di sistema del profilo deve includere un attributo del tipo di alloggio per ogni alloggio.

Facilità di accesso dei dettagli del Registro di sistema

Per registrare l'applicazione di accessibilità, è necessario creare una chiave per l'applicazione nel percorso del Registro di sistema seguente e popolarla con coppie nome-valore.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibilità\ATs\

Assegnare un nome alla chiave del Registro di sistema dell'applicazione usando il formato seguente:

"CompanyName_ProductName_v#"

Ad esempio, "Contoso_Magnifier_v2.0".

Per aggiungere valori del Registro di sistema, il programma di installazione deve essere in esecuzione con privilegi elevati.

Protezione delle sistemazioni desktop

La chiave del Registro di sistema SecureDesktopAccommodation consente di specificare il modo in cui l'applicazione di accessibilità risponde al desktop sicuro. Per impostazione predefinita, il Centro accesso di Facilità avvia l'applicazione sul desktop sicuro se è già in esecuzione sul desktop normale o se è configurato per l'esecuzione sul desktop di accesso. Usando la chiave SecureDesktopAccommodation , è possibile:

  • Specificare una versione alternativa dell'applicazione da usare sul desktop sicuro. Ad esempio, potrebbe essere disponibile una versione alternativa che disabilita le funzionalità non protette o è ottimizzata per usare meno memoria e avviare più velocemente.

    Per specificare la versione alternativa, impostare la chiave SecureDesktopAccommodation sul nome della versione alternativa. Ad esempio, se l'applicazione è stata registrata nella chiave Contoso_Screen Reader_v1.0, è possibile registrare la versione alternativa in Contoso_Screen ReaderSecure_v1.0. Impostare quindi la chiave SecureDesktopAccommodation di Contoso_Screen Reader_v1.0 su "Contoso_Screen ReaderSecure_v1.0".

  • Specificare un'applicazione di accessibilità Microsoft da usare sul desktop sicuro al posto dell'applicazione. Per questa opzione, impostare SecureDesktopAccommodation sul nome dell'applicazione di accessibilità Microsoft specifica: "osk", "magnifierpane" o "Assistente vocale".

  • Specificare che l'applicazione non deve essere eseguita sul desktop sicuro e non deve essere eseguita alcuna applicazione alternativa. Per questa opzione, impostare SecureDesktopAccommodation su "none" (consiglia) o sul nome di un'applicazione inesistente.

Se la chiave del Registro di sistema SecureDesktopAccommodation per l'applicazione di accessibilità specifica un'applicazione di accessibilità Microsoft da eseguire sul desktop sicuro al posto dell'applicazione, Windows avvisa l'utente di questo quando si effettua la transizione al desktop sicuro. Per notificare all'utente, Windows visualizza la stringa specificata nella chiave del Registro di sistema Descrizione per l'applicazione. Ad esempio, se l'applicazione ScreenReader Deluxe 1.0 usa l'Assistente vocale Microsoft sul desktop sicuro, includerebbe una stringa Descrizione, ad esempio "l'Assistente vocale Microsoft verrà usato nel blocco, nell'accesso e in altri desktop sicuri al posto di ScreenReader Deluxe 1.0".

Se la chiave SecureDesktopAccommodation dell'applicazione è impostata su "nessuno", usare la chiave Descrizione per indicare all'utente che l'applicazione non è disponibile nel desktop sicuro e non viene fornita alcuna alternativa.

Windows visualizza il testo Descrizione nelle posizioni pertinenti nel Centro accesso.

Esecuzione all'installazione e sul desktop di accesso

Se si aggiunge il nome della chiave registrata dell'applicazione di accessibilità alla stringa nel percorso del Registro di sistema seguente, Windows avvierà l'applicazione immediatamente dopo l'installazione. Windows eseguirà automaticamente l'applicazione ogni volta che il desktop di accesso è attivo.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration

La chiave di configurazione è una stringa delimitata da virgole. Per aggiungere l'applicazione, aggiungere una stringa uguale alla chiave del Registro di sistema dell'applicazione in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\.

Esecuzione in un processo

Se la chiave del Registro di sistema TerminateOnDesktopSwitch non è presente o è impostata su non zero, Windows esegue l'applicazione nel contesto di un processo, terminando e riavviando l'applicazione con ogni transizione desktop. L'esecuzione in un processo garantisce che solo una singola istanza dell'applicazione sia in esecuzione in un determinato momento e libera l'applicazione da dover monitorare lo stato desktop. Gli svantaggi dell'esecuzione in un processo includono:

  • L'applicazione comporta un costo di avvio con ogni transizione desktop.
  • L'applicazione può essere avviata solo tramite facilità di accesso.
  • L'applicazione deve continuamente salvare le impostazioni perché può essere terminata in qualsiasi momento da una transizione desktop.

Se la chiave TerminateOnDesktopSwitch esiste ed è impostata su 0, Windows non esegue l'applicazione di accessibilità in un processo. I vantaggi di questo approccio sono i seguenti:

  • Nessun costo di avvio è associato alle transizioni desktop.
  • L'applicazione può essere avviata all'esterno del Centro accesso.

Gli svantaggi di non esecuzione in un processo includono:

  • Poiché l'applicazione non viene riavviata nelle transizioni desktop, deve rilevare quando il desktop corrente è inattivo e risponde in modo appropriato. Ad esempio, l'applicazione deve rinunciare al controllo dell'hardware in modo che la versione desktop sicura dell'applicazione possa usarla e l'applicazione deve immettere la modalità di sospensione per evitare l'uso delle risorse del processore.
  • Se l'applicazione può essere avviata tramite il menu Start, Esplora windows o la riga di comando, è necessario informare facilità di accesso. Per altre informazioni, vedere Chiave logo Windows + U.
  • Poiché più copie dell'applicazione possono essere eseguite simultaneamente in desktop diversi, l'applicazione deve essere scritta per supportare più copie in esecuzione.

Tasto logo Windows + U

Se l'applicazione di accessibilità è configurata per l'esecuzione in un processo, il codice di avvio dell'applicazione deve includere una chiamata alla funzione IsProcessInJob per determinare se l'applicazione viene avviata in un processo. In caso affermativo, l'applicazione deve avviare La facilità di accesso e quindi uscire. Nell'esempio seguente viene illustrato come chiamare IsProcessInJob.

BOOL fAlreadyInJob;
BOOL fSuccess = IsProcessInJob(GetCurrentProcess(), NULL, &fAlreadyInJob); 

Se l'applicazione di accessibilità è configurata per l'esecuzione all'esterno di un processo, deve notificare a Facilità di accesso centro di accesso che l'applicazione viene avviata e continua come normale.

Indipendentemente dal modo in cui l'applicazione è configurata, se fornisce un modo per uscire dall'interno dell'applicazione, ad esempio un pulsante Chiudi, l'applicazione deve inviare una notifica a Facilità di accesso al Centro di accesso che sta chiudendo.

Un'applicazione notifica la facilità di accesso impostando una chiave del Registro di sistema temporanea e quindi inserendo la combinazione di tasti Logo di Windows + U nel flusso di input.

L'applicazione deve creare la chiave temporanea nella posizione seguente.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\AccessibilityTemp

La chiave temporanea deve avere lo stesso nome dell'applicazione registrata, ad esempio "Contoso_Screen Reader_v1.0". Il valore della chiave è un DWORD impostato su 0x0003 all'avvio o 0x0002 quando l'applicazione viene chiusa.

INPUT input[4] = {0};

input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = VK_LWIN;
input[0].ki.dwFlags = 0;

input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = 0x55; // U key
input[1].ki.dwFlags = 0;

input[2].type = INPUT_KEYBOARD;
input[2].ki.wVk = 0x55; // U key
input[2].ki.dwFlags = KEYEVENTF_KEYUP;

input[3].type = INPUT_KEYBOARD;
input[3].ki.wVk = VK_LWIN;
input[3].ki.dwFlags = KEYEVENTF_KEYUP;

SendInput(ARRAYSIZE(input), input, sizeof(input[0]));

Tasto logo Windows + Volume Up

Quando l'utente avvia l'applicazione di accessibilità premendo la combinazione di tasti Di accesso Windows + Volume Up (ad esempio in un dispositivo tablet), l'argomento della riga di comando seguente passa l'argomento della riga di comando seguente all'applicazione:

/hardwarebuttonlaunch

L'applicazione può usare questo argomento per determinare se avviare normalmente o modificare di conseguenza il comportamento.

Trasferimento di impostazioni desktop sicure

Se l'applicazione di accessibilità supporta il desktop sicuro, è possibile usare il Registro di sistema per copiare le impostazioni quando l'applicazione passa al desktop sicuro. Le impostazioni di copia consentono di eseguire la transizione al desktop sicuro più facilmente per l'utente.

Per copiare le impostazioni, impostare la chiave del Registro di sistema CopySettingsToLockedDesktop su 1 e archiviare le impostazioni nel percorso del Registro di sistema seguente.

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\<AT Key Name>

La facilità di accesso del Centro monitora questa posizione del Registro di sistema durante l'esecuzione dell'applicazione. Quando si verifica una transizione al desktop sicuro, il Centro di accesso copia le impostazioni nella stessa posizione nell'hive HKCU del desktop sicuro. L'applicazione può quindi leggere le impostazioni e riprendere lo stato.

L'applicazione di accessibilità deve scrivere le impostazioni a intervalli regolari o ogni volta che i valori cambiano. La scrittura delle impostazioni all'uscita dell'applicazione non funzionerà. Se l'applicazione è in esecuzione in un processo, viene terminata la transizione dal desktop sicuro, prima che il codice di uscita abbia la possibilità di eseguire. Se l'applicazione non è in esecuzione in un processo, l'applicazione non viene terminata alla transizione dal desktop sicuro.

Attenzione

Poiché le chiavi del Registro di sistema descritte qui sono scritte in modalità utente, non sono sicure. Se l'applicazione di accessibilità legge il contenuto di queste chiavi, deve controllare attentamente i dati e usarla con cautela. In particolare, l'applicazione deve eseguire un controllo dei limiti sui valori DWORD , prestare attenzione alle lunghezze delle stringhe, non leggere i nomi DLL del plug-in e non eseguire comandi trovati nelle stringhe.

Esempi del Registro di sistema

Nell'esempio seguente vengono illustrati i possibili valori del Registro di sistema per un prodotto fittizio denominato Contoso ScreenReader versione 2.0, il cui nome localizzato viene archiviato come risorsa.

I valori della tabella sono sotto la chiave seguente:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibilità\ATs\Contoso_Screen Reader_v2.0

Nome Tipo Dati
ApplicationName REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5020
Descrizione REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5040
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\ContosoTools\Bin\ContosoSR.exe
StartParams REG_SZ
SecureDesktopAccommodation REG_SZ Assistente vocale

Se l'applicazione fornisce sia un utilità di lettura dello schermo che un ingrandimento dello schermo in un singolo eseguibile, i valori per il componente di lettura dello schermo potrebbero essere simili al seguente:

Nome Tipo Dati
ApplicationName REG_SZ @C:\Programma Files\Contoso\Contosores.dll,-30
Descrizione REG_SZ @C:\Programma Files\Contoso\Contosores.dll,-32
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="low vision">
   <Accommodation type="severe vision">
   <Accommodation type="mild cognitive">
</HCIModel>
SimpleProfile REG_SZ ScreenReader
StartExe REG_SZ C:\Programmi Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /r

I valori per il componente di ingrandimento si trovano nella chiave seguente:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Contosoibility\ATs\Contoso_Magnifier_v2.0

Nome Tipo Dati
ApplicationName REG_SZ @c:\Programma Files\Contoso\Contosores.dll,-31
Descrizione REG_SZ @c:\Programma Files\Contoso\Contosores.dll,-42
Profilo REG_SZ
XML
<HCIModel>
   <Accommodation type="mild vision">
</HCIModel>
SimpleProfile REG_SZ Ingrandimento
StartExe REG_SZ c:\Programmi Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /m