次の方法で共有


簡単操作支援技術登録

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

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

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

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

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

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

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

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

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

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

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

ローカライゼーション

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

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

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

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

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

[コメント] には、省略可能なコメントが含まれています。

次に例を示します。

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

MUI の詳細については、「windows MUI Knowledge Center 」を参照してください。

HCI プロファイル

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

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

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

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

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

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

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

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

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

一時キーには、登録されているアプリケーション名と同じ名前 ("Contoso_Screen Reader_v1.0" など) が必要です。 キーの値は、DWORD 起動時に0x0003に設定されるか、アプリケーションの終了時に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 ロゴ キーとボリューム アップ キーの組み合わせ (タブレット デバイスなど) を押してアクセシビリティ アプリケーションを起動すると、簡単操作センターは次のコマンド ライン引数をアプリケーションに渡します。

/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

名前 種類 データ
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 ナレーター

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

名前 種類 データ
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

名前 種類 データ
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