다음을 통해 공유


접근성 보조 기술 등록

이 문서에서는 접근성 센터에 접근성 애플리케이션을 등록하는 방법을 설명합니다. 또한 보안 데스크톱에서 잘 작동하도록 접근성 애플리케이션을 조정하는 방법도 설명합니다.

접근성 센터는 Microsoft Windows용 제어판 애플리케이션으로 접근성과 사용 편의성을 위한 기능을 함께 제공합니다. 사용자는 접근성 센터를 사용하여 물리적 및 인지적 요구 사항에 맞게 컴퓨터를 구성할 수 있습니다.

접근성 센터의 한 가지 기능은 사용자가 내레이터, 화상 키보드 및 돋보기를 비롯한 접근성 애플리케이션을 시작하도록 돕는 것입니다. 등록된 타사 애플리케이션도 접근성 센터에 표시되며 여기에서 직접 시작할 수 있습니다.

접근성 애플리케이션은 보안 데스크톱에서 원활하게 작동해야 합니다. 보안 데스크톱은 컴퓨터가 잠겨 있거나(로그온 시 또는 사용자가 데스크톱을 잠갔을 때) 사용자에게 안전하지 않은 작업을 허용하라는 메시지가 표시될 때 나타나는 사용자 인터페이스입니다. 보안상의 이유로 Windows는 보안 데스크톱에서 실행되는 타사 소프트웨어에 제한을 줍니다. 접근성 애플리케이션을 보안 데스크톱에서 실행하려면 접근성 센터에 애플리케이션을 등록해야 합니다.

접근성 센터에 등록

접근성 애플리케이션은 애플리케이션이 설치될 때 하나 이상의 레지스트리 키를 만들어 접근성 센터에 등록합니다. 다음 표에서는 레지스트리 키에 포함된 정보를 나열합니다.

속성 설명 필수/선택 언어
애플리케이션 이름 리소스 파일에 있는 애플리케이션의 이름입니다. 이 레지스트리 값은 지정된 형식의 문자열을 포함합니다. 애플리케이션이 영어 이외의 언어로 지역화된 경우 애플리케이션 이름의 지역화된 버전일 수 있습니다. 이름은 접근성 센터에 표시됩니다.
필수 지역화 된
ATExe 애플리케이션 실행 파일 또는 이미지의 이름입니다. Windows는 이 값을 사용하여 접근성 애플리케이션이 실행 중인지 여부를 확인합니다.
필수 지역화되지 않음
CopySettingsToLockedDesktop 접근성 애플리케이션의 설정을 잠긴 데스크톱에 복사할지 여부를 나타내는 DWORD 값입니다.
이 값이 1이면 애플리케이션이 사용자 레지스트리의 위치에 설정을 쓸 수 있으며 Windows는 잠긴 데스크톱에 대한 사용자 레지스트리의 동일한 위치에 설정을 복사합니다. 이렇게 하면 애플리케이션이 "일반" 데스크톱에서 잠긴 데스크톱으로 상태를 유지할 수 있습니다.
선택 사항 지역화되지 않음
설명 리소스 파일에서 애플리케이션에 대한 간략한 설명입니다. 이 레지스트리 값은 지정된 형식의 문자열을 포함합니다. 애플리케이션이 영어 이외의 언어로 지역화된 경우 설명의 지역화된 버전일 수 있습니다. 이 문자열의 길이는 512자 미만이어야 합니다.
접근성 애플리케이션에 대한 추가 정보를 사용자에게 제공하기 위해 접근성 센터에 설명이 표시됩니다.
이 값을 사용하여 보안 데스크톱에서 애플리케이션이 사용되지 않음을 사용자에게 알릴 수도 있습니다.
필수 지역화 된
프로필 애플리케이션에서 제공하는 편의 시설을 지정하는 짧은 XML 조각입니다. 애플리케이션이 접근성 센터의 올바른 범주 아래에 표시되도록 합니다.
필수 지역화되지 않음
PassiveAutoStartBehavior

레거시 자동 시작 동작이 사용되는지 여부를 나타내는 DWORD 값입니다.

기본값은 0으로, AT에 레거시 자동 시작 동작이 필요했음을 나타냅니다. 그러면 해당 AT에 대한 "로그인 후 시작" 설정이 OOBE(Out Of Box Experience) 및 제어판(제어판 -> 접근성 - 접근성 센터 ->> 로그인 설정 변경 참조)에서 선택되고 UAC 및 잠금 화면 후에 AT가 자동으로 시작됩니다.

값이 1이면 AT에 대한 "로그인 후 시작" 설정이 OOBE(Out Of Box Experience) 및 제어판 선택되지 않고 "로그인 후 시작" 설정이 선택된 경우에만 AT가 사용자 세션당 한 번(로그인 시) 자동으로 시작되는 새 자동 시작 동작을 사용해야 함을 나타냅니다.

선택 사항 지역화되지 않음
SecureDesktopAccommodation 이 애플리케이션 대신 보안 데스크톱에서 실행할 대체 접근성 애플리케이션의 이름입니다. 대안은 다른 애플리케이션, 동일한 애플리케이션의 다른 버전, Windows에 포함된 접근성 애플리케이션 중 하나 또는 보안 데스크톱에서 접근성 애플리케이션을 실행하지 않으려는 경우 "none"일 수 있습니다.
선택 사항 지역화되지 않음
단순 프로필 한두 단어로 애플리케이션을 분류하는 방법을 설명하는 값입니다. 예를 들어 화면 읽기 프로그램, 돋보기 또는 화상 키보드입니다.
필수 지역화되지 않음
StartExe 실행 파일의 전체 경로입니다. 이 값은 접근성 애플리케이션을 시작하는 데 사용됩니다.
필수 지역화되지 않음
StartParams 명령줄 인수. 이러한 값은 StartExe와 함께 애플리케이션을 시작하는 데 사용됩니다.
선택 사항 지역화되지 않음
TerminateOnDesktopSwitch 접근성 애플리케이션이 보안 데스크톱으로 또는 보안 데스크톱에서 전환에 응답하는 방법을 지정하는 DWORD 값입니다.
이 값이 없거나 1이면 Windows는 보안 데스크톱으로 또는 보안 데스크톱으로 전환할 때마다 애플리케이션을 종료하고 다시 시작합니다. 기본 동작입니다.
이 값이 0이면 Windows는 데스크톱 전환에서 접근성 애플리케이션을 종료하지 않습니다. 애플리케이션은 이전 데스크톱에서 계속 실행되며, instance 아직 실행되지 않은 경우 Windows는 새 데스크톱에서 새 instance 시작합니다.
선택 사항 지역화되지 않음

지역화

MUI(다국어 사용자 인터페이스)를 지원하려면 애플리케이션 이름 및 설명의 레지스트리 값을 지역화할 수 있어야 합니다.

이러한 문자열은 다음 형식으로, 꺾쇠 괄호는 필요한 요소를 의미하고 대괄호는 선택적 요소를 나타냅니다.

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

<ResDllPath\ResDLLFilename> 은 리소스 DLL의 경로입니다. 경로에는 환경 변수가 포함될 수 있습니다.

<resID> 는 문자열의 리소스 ID입니다.

[comment] 에는 선택적 주석이 포함되어 있습니다.

예를 들면 다음과 같습니다.

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

MUI에 대한 자세한 내용은 Windows MUI 기술 센터를 참조하세요.

HCI 프로필

HCI(휴먼 컴퓨터 상호 작용) 프로필은 사용자의 요구에 따라 제공할 편의 시설을 결정하는 방법입니다. 접근성 애플리케이션은 애플리케이션이 수용하는 데 도움이 되는 장애의 종류에 대한 정보를 등록해야 합니다.

프로필 레지스트리 값에는 접근성 애플리케이션에서 대상으로 하는 장애의 종류를 설명하는 XML이 포함되어 있습니다. 이 XML의 형식은 다음과 같습니다.

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

숙박 시설 유형 특성의 유효한 값은 다음과 같습니다.

  • 가벼운 시력
  • 심각한 시력
  • 경도 인지
  • 심각한 인지
  • 온화한 손전등
  • 심각한 손전원
  • 가벼운 청각
  • 심한 청각
  • 가벼운 음성
  • 심각한 음성

참고

이러한 값은 대/소문자를 구분합니다.

접근성 애플리케이션이 여러 편의 시설을 지원하는 경우 프로필 레지스트리 값에는 각 숙박 시설에 대한 숙박 시설 유형 특성이 포함되어야 합니다.

접근성 레지스트리 세부 정보

접근성 애플리케이션을 등록하려면 다음 레지스트리 위치에서 애플리케이션에 대한 키를 만들고 이름-값 쌍으로 채워야 합니다.

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", "magnifierpane" 또는 "내레이터".

  • 애플리케이션이 보안 데스크톱에서 실행되지 않아야 하며 대체 애플리케이션도 실행하지 않도록 지정합니다. 이 옵션의 경우 SecureDesktopAccommodation 을 "none"(권장) 또는 존재하지 않는 애플리케이션의 이름으로 설정합니다.

접근성 애플리케이션에 대한 SecureDesktopAccommodation 레지스트리 키가 애플리케이션 대신 보안 데스크톱에서 실행할 Microsoft 접근성 애플리케이션을 지정하는 경우 Windows는 보안 데스크톱으로 전환할 때 사용자에게 이를 알릴 수 있습니다. 사용자에게 알리기 위해 Windows는 애플리케이션에 대한 설명 레지스트리 키에 지정된 문자열을 표시합니다. 예를 들어 ScreenReader Deluxe 1.0 애플리케이션이 보안 데스크톱에서 Microsoft 내레이터를 사용하는 경우 "Microsoft 내레이터는 ScreenReader Deluxe 1.0 대신 잠긴, 로그온 및 기타 보안 데스크톱에서 사용됩니다."와 같은 설명 문자열이 포함됩니다.

애플리케이션의 SecureDesktopAccommodation 키가 "none"으로 설정된 경우 설명 키를 사용하여 사용자에게 애플리케이션을 보안 데스크톱에서 사용할 수 없으며 대안이 제공되지 않음을 알립니다.

Windows는 접근성 센터의 관련 위치에 설명 텍스트를 표시합니다.

설치 시 및 로그온 데스크톱에서 실행

다음 레지스트리 위치의 문자열에 접근성 애플리케이션의 등록된 키 이름을 추가하면 Windows에서 애플리케이션을 설치한 직후에 시작합니다. 또한 Windows는 로그온 데스크톱이 활성화될 때마다 애플리케이션을 자동으로 실행합니다.

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

구성 키는 쉼표로 구분된 문자열입니다. 애플리케이션을 추가하려면 애플리케이션의 레지스트리 키와 동일한 문자열을 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\에 추가합니다.

작업에서 실행

TerminateOnDesktopSwitch 레지스트리 키가 없거나 0이 아닌 키로 설정된 경우 Windows는 작업의 컨텍스트에서 애플리케이션을 실행하여 각 데스크톱 전환 시 애플리케이션을 종료하고 다시 시작합니다. 작업에서 실행하면 애플리케이션의 단일 instance 특정 시간에 실행되고 애플리케이션이 데스크톱 상태를 모니터링할 필요가 없도록 합니다. 작업에서 실행의 단점은 다음과 같습니다.

  • 애플리케이션은 각 데스크톱 전환 시 시작 비용이 발생합니다.
  • 애플리케이션은 접근성 센터를 통해서만 시작할 수 있습니다.
  • 애플리케이션은 데스크톱 전환에 의해 언제든지 종료될 수 있으므로 설정을 지속적으로 저장해야 합니다.

TerminateOnDesktopSwitch 키가 있고 0으로 설정된 경우 Windows는 작업에서 접근성 애플리케이션을 실행하지 않습니다. 이 방법의 이점은 다음과 같습니다.

  • 데스크톱 전환과 관련된 시작 비용은 없습니다.
  • 애플리케이션은 접근성 센터 외부에서 시작할 수 있습니다.

작업에서 실행되지 않는 단점은 다음과 같습니다.

  • 애플리케이션은 데스크톱 전환 시 다시 시작되지 않으므로 현재 데스크톱이 비활성 상태인지 감지하고 적절하게 응답해야 합니다. 예를 들어 애플리케이션은 애플리케이션의 보안 데스크톱 버전에서 사용할 수 있도록 하드웨어 제어를 포기해야 하며 애플리케이션은 프로세서 리소스를 사용하지 않도록 절전 모드로 전환해야 합니다.
  • 시작 메뉴, Windows Explorer 또는 명령줄을 통해 애플리케이션을 시작할 수 있는 경우 접근성 센터에 정보를 제공해야 합니다. 자세한 내용은 Windows 로고 키 + U를 참조하세요.
  • 애플리케이션의 여러 복사본이 서로 다른 데스크톱에서 동시에 실행될 수 있으므로 여러 실행 중인 복사본을 지원하도록 애플리케이션을 작성해야 합니다.

Windows 로고 키 + U

접근성 애플리케이션이 작업에서 실행되도록 구성된 경우 애플리케이션의 시작 코드는 IsProcessInJob 함수에 대한 호출을 포함하여 애플리케이션이 작업에서 시작되고 있는지 여부를 확인해야 합니다. 이 경우 애플리케이션은 접근성 센터를 시작한 다음 종료해야 합니다. 다음 예제에서는 IsProcessInJob을 호출하는 방법을 보여 줍니다.

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

접근성 애플리케이션이 작업 외부에서 실행되도록 구성된 경우 접근성 센터에 애플리케이션이 정상적으로 시작되고 계속됨을 알려야 합니다.

애플리케이션이 구성된 방식에 관계없이 닫기 단추와 같이 애플리케이션 내에서 종료하는 방법을 제공하는 경우 애플리케이션은 접근성 센터에 애플리케이션이 종료되고 있음을 알려야 합니다.

애플리케이션은 임시 레지스트리 키를 설정한 다음 Windows 로고 키 + U 키 조합을 입력 스트림에 삽입하여 접근성 센터에 알 수 있습니다.

애플리케이션은 다음 위치에 임시 키를 만들어야 합니다.

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

임시 키는 등록된 애플리케이션 이름과 이름이 같아야 합니다(예: "Contoso_Screen Reader_v1.0"). 키의 값은 시작할 때 0x0003 설정되거나 애플리케이션이 종료되면 0x0002 DWORD 집합입니다.

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 키 이름>

접근성 센터는 애플리케이션이 실행되는 동안 이 레지스트리 위치를 모니터링합니다. 보안 데스크톱으로의 전환이 발생하면 접근성 센터는 보안 데스크톱의 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
Description 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 내레이터

애플리케이션이 단일 실행 파일에서 화면 읽기 프로그램과 화면 돋보기를 모두 제공하는 경우 화면 읽기 프로그램 구성 요소의 값은 다음과 같을 수 있습니다.

속성 형식 데이터
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