簡単操作支援技術の登録

この記事では、アクセシビリティ アプリケーションを簡単操作センターに登録する方法について説明します。 また、セキュリティで保護されたデスクトップで適切に動作するようにアクセシビリティ アプリケーションを調整する方法についても説明します。

簡単操作センターは、Microsoft Windows 用のコントロール パネル アプリケーションであり、アクセシビリティと使いやすさのための機能を組み合わせています。 ユーザーは、簡単操作センターを使用して、物理的および認知的なニーズに合わせてコンピューターを構成できます。

簡単操作センターの機能の 1 つは、ナレーター、スクリーン キーボード、拡大鏡などのアクセシビリティ アプリケーションをユーザーが起動できるようにすることです。 登録されたサードパーティ製アプリケーションは、簡単操作センターにも表示され、そこから直接起動できます。

アクセシビリティ アプリケーションは、セキュリティで保護されたデスクトップでスムーズに動作する必要があります。 セキュリティで保護されたデスクトップは、コンピューターがロックされている場合 (ログオン時またはユーザーがデスクトップをロックしたとき)、およびユーザーが安全でない可能性のあるアクションを許可するように求められたときに表示されるユーザー インターフェイスです。 セキュリティ上の理由から、Windows では、セキュリティで保護されたデスクトップで実行されているサード パーティ製ソフトウェアに制限が適用されます。 アクセシビリティ アプリケーションをセキュリティで保護されたデスクトップで実行する場合は、アプリケーションを簡単操作センターに登録する必要があります。

簡単操作センターへの登録

アクセシビリティ アプリケーションは、アプリケーションのインストール時に 1 つ以上のレジストリ キーを作成して、簡単操作センターに登録します。 次の表に、レジストリ キーに含まれる情報を示します。

名前 説明 必須/省略可能 言語
アプリケーション名 リソース ファイル内にあるアプリケーションの名前。 このレジストリ値には、指定した形式の文字列が含まれています。 これは、アプリケーションが英語以外の言語でローカライズされている場合は、アプリケーション名のローカライズされたバージョンである可能性があります。 この名前は、簡単操作センターに表示されます。
Mandatory ローカライズ された
ATExe アプリケーション実行可能ファイルまたはイメージの名前。 Windows では、この値を使用して、アクセシビリティ アプリケーションが実行されているかどうかを判断します。
Mandatory ローカライズされていません
CopySettingsToLockedDesktop アクセシビリティ アプリケーションの設定をロックされたデスクトップにコピーするかどうかを示す DWORD 値。
この値が 1 の場合、アプリケーションはユーザー レジストリ内の場所に設定を書き込み、Windows はロックされたデスクトップのユーザー レジストリ内の同じ場所に設定をコピーします。 これにより、アプリケーションは "標準" デスクトップからロックされたデスクトップに状態を保持できます。
オプション ローカライズされていません
説明 リソース ファイルからのアプリケーションの簡単な説明。 このレジストリ値には、指定した形式の文字列が含まれています。 これは、アプリケーションが英語以外の言語でローカライズされている場合は、説明のローカライズされたバージョンである可能性があります。 この文字列の長さは 512 文字未満にする必要があります。
ユーザーにアクセシビリティ アプリケーションに関する追加情報を提供するために、簡単操作センターに説明が表示されます。
この値は、セキュリティで保護されたデスクトップでアプリケーションが使用されていないことをユーザーに通知するためにも使用できます。
Mandatory ローカライズ された
プロファイル アプリケーションが提供する宿泊施設を指定する XML の短い部分。 これにより、アプリケーションが [簡単操作センター] の正しいカテゴリの下に表示されます。
Mandatory ローカライズされていません
PassiveAutoStartBehavior

従来の自動開始動作が有効かどうかを示す DWORD 値。

既定値は 0 です。これは、AT に従来の自動開始動作が必要であることを示します。 これにより、その AT の [サインイン後に開始] 設定が [Out Of Box Experience (OOBE)] と [コントロール パネル (「コントロール パネル - 簡単操作 ->> 簡単操作センター -> サインイン設定の変更」を参照) にチェックインされ、UAC とロック画面の後に AT が自動的に開始されます。

値 1 は、AT が新しい自動開始動作を使用する必要があることを示します。この場合、その AT の "サインイン後に開始する" 設定は Out Of Box Experience (OOBE) と コントロール パネルでチェックされず、AT は [サインイン後に開始] 設定がオンになっている場合にのみ、ユーザー セッション (ログイン時) ごとに 1 回自動的に開始されます。

オプション ローカライズされていません
SecureDesktopAccommodation このアプリケーションの代わりにセキュリティで保護されたデスクトップで実行する代替アクセシビリティ アプリケーションの名前。 代替には、別のアプリケーション、同じアプリケーションの異なるバージョン、Windows に含まれているアクセシビリティ アプリケーションの 1 つ、またはセキュリティで保護されたデスクトップでアクセシビリティ アプリケーションを実行しない場合は "none" を指定できます。
オプション ローカライズされていません
単純なプロファイル たとえば、スクリーン リーダー、拡大鏡、スクリーン キーボードなど、1 つまたは 2 つの単語でアプリケーションを分類する方法を説明する値です。
Mandatory ローカライズされていません
StartExe 実行可能ファイルの完全なパス。 この値は、アクセシビリティ アプリケーションを起動するために使用されます。
Mandatory ローカライズされていません
StartParams コマンド ライン引数。 これらの値は、アプリケーションを起動するために StartExe と共に使用されます。
オプション ローカライズされていません
TerminateOnDesktopSwitch セキュリティで保護されたデスクトップとの間の切り替えに対するアクセシビリティ アプリケーションの応答方法を指定する DWORD 値。
この値が存在しない場合、または 1 の場合、Windows はセキュリティで保護されたデスクトップとの間で切り替えるたびにアプリケーションを終了して再起動します。 これは既定の動作です。
この値が 0 の場合、Windows はデスクトップ切り替え時にアクセシビリティ アプリケーションを終了しません。 アプリケーションは前のデスクトップで引き続き実行され、インスタンスがまだ実行されていない場合は、新しいデスクトップで新しいインスタンスが起動されます。
オプション ローカライズされていません

ローカライズ

多言語ユーザー インターフェイス (MUI) をサポートするには、アプリケーション名と説明のレジストリ値をローカライズ可能にする必要があります。

これらの文字列は次の形式です。山かっこは必須の要素を示し、角かっこは省略可能な要素を表します。

@<ResDllPath\ResDLLFilename>,-<resID>[;<コメント>]

<ResDllPath\ResDLLFilename> は、リソース DLL へのパスです。 パスには環境変数を含めることができます。

<resID> は文字列のリソース ID です。

[comment] には任意のコメントが含まれます。

たとえば次のようになります。

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

MUI の詳細については、「 Windows MUI ナレッジ センター」を参照してください。

HCI プロファイル

Human Computer Interaction (HCI) プロファイルは、ユーザーのニーズに基づいて提供する宿泊施設を決定する方法です。 アクセシビリティ アプリケーションでは、アプリケーションが対応するのに役立つ障害の種類に関する情報を登録する必要があります。

プロファイル レジストリの値には、アクセシビリティ アプリケーションの対象となる障の種類を記述する XML が含まれています。 この XML の形式は次のとおりです。

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

Accommodation type 属性の有効な値は次のとおりです。

  • 軽度の視覚
  • 厳しいビジョン
  • 軽度の認知
  • 重篤な認知
  • 軽度の器用さ
  • 重度の器用さ
  • 軽度の聴覚
  • 重度の聴覚
  • 穏やかな音声
  • 重大な音声

Note

これらの値では、大文字と小文字が区別されます。

アクセシビリティ アプリケーションで複数の宿泊施設がサポートされている場合、プロファイル レジストリ値には、各宿泊施設の Accommodation 型 属性を含める必要があります。

簡単操作のレジストリの詳細

アクセシビリティ アプリケーションを登録するには、次のレジストリの場所にアプリケーションのキーを作成し、名前と値のペアを設定する必要があります。

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\

次の形式を使用して、アプリケーションのレジストリ キーに名前を付けます。

"CompanyName_ProductName_v#"

たとえば、"Contoso_Magnifier_v2.0" とします。

レジストリ値を追加するには、インストール プログラムが昇格された特権で実行されている必要があります。

セキュリティで保護されたデスクトップの宿泊施設

SecureDesktopAccommodation レジストリ キーを使用すると、セキュリティで保護されたデスクトップに対するアクセシビリティ アプリケーションの応答方法を指定できます。 既定では、通常のデスクトップで既に実行されていた場合、またはログオン デスクトップで実行するように構成されている場合は、セキュリティで保護されたデスクトップでアプリケーションが起動されます。 SecureDesktopAccommodation キーを使用すると、次のことができます。

  • セキュリティで保護されたデスクトップで使用するアプリケーションの代替バージョンを指定します。 たとえば、セキュリティで保護されていない機能を無効にする代替バージョンがある場合や、より少ないメモリを使用して起動を高速化するように最適化されている場合があります。

    代替バージョンを指定するには、 SecureDesktopAccommodation キーを代替バージョンの名前に設定します。 たとえば、Contoso_Screen Reader_v1.0 キーでアプリケーションを登録した場合は、Contoso_Screen ReaderSecure_v1.0 で代替バージョンを登録できます。 次に、 Contoso_Screen Reader_v1.0 の SecureDesktopAccommodation キーを "Contoso_Screen ReaderSecure_v1.0" に設定します。

  • アプリケーションの代わりにセキュリティで保護されたデスクトップで使用する Microsoft アクセシビリティ アプリケーションを指定します。 このオプションでは、 SecureDesktopAccommodation を特定の Microsoft アクセシビリティ アプリケーションの名前 ("osk"、"拡大鏡"、または "ナレーター") に設定します。

  • アプリケーションをセキュリティで保護されたデスクトップで実行しないように指定し、代替アプリケーションも実行しないように指定します。 このオプションでは、 SecureDesktopAccommodation を "none" (推奨) または存在しないアプリケーションの名前に設定します。

アクセシビリティ アプリケーションの SecureDesktopAccommodation レジストリ キーで、アプリケーションの代わりにセキュリティで保護されたデスクトップで実行する Microsoft アクセシビリティ アプリケーションが指定されている場合、Windows は、セキュリティで保護されたデスクトップへの移行時にユーザーに通知します。 ユーザーに通知するために、Windows はアプリケーションの Description レジストリ キーに指定された文字列を表示します。 たとえば、ScreenReader Deluxe 1.0 アプリケーションでセキュリティで保護されたデスクトップで Microsoft ナレーターを使用する場合は、"Microsoft ナレーターは、ScreenReader Deluxe 1.0 の代わりにロック、ログオン、およびその他のセキュリティで保護されたデスクトップで使用されます" などの説明文字列が含まれます。

アプリケーションの SecureDesktopAccommodation キーが "none" に設定されている場合は、 Description キーを使用して、セキュリティで保護されたデスクトップでアプリケーションを使用できなくなり、代替手段が提供されていないことをユーザーに伝えます。

Windows では、簡単操作センターの関連する場所に説明テキストが表示されます。

インストール時およびログオン デスクトップでの実行

次のレジストリの場所にある文字列にアクセシビリティ アプリケーションの登録済みキー名を追加すると、Windows はインストール直後にアプリケーションを起動します。 また、ログオン デスクトップがアクティブになると、Windows によってアプリケーションが自動的に実行されます。

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

構成キーはコンマ区切りの文字列です。 アプリケーションを追加するには、アプリケーションのレジストリ キーと同じ文字列を HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\ に追加します。

ジョブでの実行

TerminateOnDesktopSwitch レジストリ キーが存在しないか、0 以外に設定されている場合、Windows はジョブのコンテキストでアプリケーションを実行し、デスクトップの切り替えごとにアプリケーションを終了して再起動します。 ジョブで実行すると、アプリケーションの 1 つのインスタンスのみが特定の時点で実行され、アプリケーションがデスクトップの状態を監視する必要がないようにします。 ジョブで実行する場合の欠点は次のとおりです。

  • アプリケーションでは、デスクトップの切り替えごとにスタートアップ コストが発生します。
  • アプリケーションは、簡単操作センターでのみ開始できます。
  • アプリケーションは、デスクトップ切り替えによっていつでも終了できるため、その設定を継続的に保存する必要があります。

TerminateOnDesktopSwitch キーが存在し、0 に設定されている場合、Windows はジョブでアクセシビリティ アプリケーションを実行しません。 このことには次の利点があります。

  • デスクトップ画面切り替えに関連するスタートアップ コストはありません。
  • アプリケーションは、簡単操作センターの外部から開始できます。

ジョブで実行されない場合の欠点は次のとおりです。

  • アプリケーションはデスクトップの切り替え時に再起動されないため、現在のデスクトップが非アクティブであることを検出し、適切に応答する必要があります。 たとえば、セキュリティで保護されたデスクトップ バージョンのアプリケーションで使用できるように、アプリケーションでハードウェアの制御を放棄する必要があり、プロセッサ リソースの使用を避けるために、アプリケーションはスリープ モードに入る必要があります。
  • [スタート] メニュー、Windows エクスプローラー、またはコマンド ラインからアプリケーションを起動できる場合は、簡単操作センターに通知する必要があります。 詳細については、「 Windows ロゴ キー + U」を参照してください。
  • アプリケーションの複数のコピーを異なるデスクトップで同時に実行できるため、複数の実行中のコピーをサポートするようにアプリケーションを記述する必要があります。

Windows ロゴ キー + U

アクセシビリティ アプリケーションがジョブで実行されるように構成されている場合は、アプリケーションのスタートアップ コードに IsProcessInJob 関数の呼び出しを含めて、アプリケーションがジョブで開始されているかどうかを判断する必要があります。 その場合、アプリケーションは簡単操作センターを起動してから終了する必要があります。 次の例は 、IsProcessInJob を呼び出す方法を示しています。

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

アクセシビリティ アプリケーションがジョブの外部で実行されるように構成されている場合は、アプリケーションが開始され、通常どおり続行されていることを Ease of Access Center に通知する必要があります。

アプリケーションの構成方法に関係なく、アプリケーション内から終了する方法 ([閉じる] ボタンなど) が提供されている場合、アプリケーションは、アプリケーションが終了していることを Ease of Access Center に通知する必要があります。

アプリケーションは、一時的なレジストリ キーを設定し、Windows ロゴ キーと U キーの組み合わせを入力ストリームに挿入することで、Ease of Access Center に通知します。

アプリケーションは、次の場所に一時キーを作成する必要があります。

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

一時キーの名前は、"Contoso_Screen Reader_v1.0" など、登録済みのアプリケーション名と同じである必要があります。 キーの値は、起動時に0x0003に設定された DWORD 、またはアプリケーションの終了時に0x0002です。

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]));

Windows ロゴ キー + 音量アップ

ユーザーが Windows ロゴ キーとボリューム アップ キーの組み合わせ (タブレット デバイスなど) を押してアクセシビリティ アプリケーションを起動すると、Ease of Access Center は次のコマンド ライン引数をアプリケーションに渡します。

/hardwarebuttonlaunch

アプリケーションでは、この引数を使用して、正常に開始するか、それに応じて動作を調整するかを決定できます。

セキュリティで保護されたデスクトップ設定の転送

アクセシビリティ アプリケーションがセキュリティで保護されたデスクトップをサポートしている場合は、アプリケーションがセキュリティで保護されたデスクトップに移行するときに、レジストリを使用して設定をコピーできます。 設定をコピーすると、セキュリティで保護されたデスクトップへの切り替えがユーザーにとってよりシームレスになります。

設定をコピーするには、アプリケーションの CopySettingsToLockedDesktop レジストリ キーを 1 に設定し、設定を次のレジストリの場所に格納します。

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATConfig\<AT キー名>

Ease of Access Center では、アプリケーションの実行中にこのレジストリの場所が監視されます。 セキュリティで保護されたデスクトップへの移行が発生すると、セキュリティで保護されたデスクトップの HKCU ハイブ内の同じ場所に設定がコピーされます。 その後、アプリケーションは設定を読み取り、その状態を再開できます。

アクセシビリティ アプリケーションでは、値が変更されるたびに、一定の間隔で設定を記述する必要があります。 アプリケーションの終了時に設定を書き込む操作は機能しません。 アプリケーションがジョブで実行されている場合、終了コードが実行される前に、セキュリティで保護されたデスクトップからの移行時に終了します。 アプリケーションがジョブで実行されていない場合、アプリケーションは、セキュリティで保護されたデスクトップからの移行時に終了しません。

注意事項

ここで説明するレジストリ キーはユーザー モードで記述されているため、セキュリティで保護されていません。 アクセシビリティ アプリケーションがこれらのキーの内容を読み取る場合は、データを慎重にチェックし、慎重に使用する必要があります。 具体的には、アプリケーションは DWORD 値に対して境界チェックを実行し、文字列の長さに注意し、プラグイン DLL 名を読み取らず、文字列内のコマンドを実行しないようにする必要があります。

レジストリの例

次の例は、ローカライズされた名前がリソースとして格納されている Contoso ScreenReader バージョン 2.0 という架空の製品に対して考えられるレジストリ値を示しています。

テーブル内の値は、次のキーの下にあります。

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

名前 Type データ
ApplicationName REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5020
説明 REG_SZ @%SystemRoot%\system32\ContosoRes.dll,-5040
プロファイル 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 Narrator

アプリケーションが 1 つの実行可能ファイルにスクリーン リーダーとスクリーン 拡大鏡の両方を提供する場合、スクリーン リーダー コンポーネントの値は次のようになります。

名前 Type データ
ApplicationName REG_SZ @C:\Program Files\Contoso\Contosores.dll,-30
説明 REG_SZ @C:\Program Files\Contoso\Contosores.dll,-32
プロファイル 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:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /r

拡大鏡コンポーネントの値は、次のキーになります。

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

名前 Type データ
ApplicationName REG_SZ @c:\Program Files\Contoso\Contosores.dll,-31
説明 REG_SZ @c:\Program Files\Contoso\Contosores.dll,-42
プロファイル REG_SZ
XML
<HCIModel>
   <Accommodation type="mild vision">
</HCIModel>
SimpleProfile REG_SZ 倍率
StartExe REG_SZ c:\Program Files\Contoso\Bin\ContosoSR.exe
StartParams REG_SZ /m