Ease of Access registration help?


  • Hopefully someone here can offer some guidance from the following...
    Re: Ease of Access – Assistive Technology Registration -

    I have my accessibility application (an on-screen keyboard) mostly working from following the information in the above link. It starts up for logon and after logon (at the "desktop"). But I do have some problems.

    From the link: "If your accessibility application is configured to run in a job, your application's startup code should include a call to the IsProcessInJob function to determine whether the application is starting in a job. If it is, the application should start the Ease of Access Center and then exit. The following example shows how to call IsProcessInJob.

    BOOL fAlreadyInJob;

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

    If the accessibility application is configured to run outside of a job, it should notify the Ease of Access Center that the application is starting and continue as normal.

    Regardless of how the application is configured, if it provides a way to exit from within the application, such as a Close button, the application must notify the Ease of Access Center that it is exiting.

    An application notifies the Ease of Access Center by setting a temporary registry key and then injecting the Windows Logo key + U key combination into the input stream.

    The application should create the temporary key at the following location.

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

    The temporary key should have the same name as the registered application name, such as "Contoso_Screen Reader_v1.0". The value of the key is a DWORD set to 0x0003 when it is starting, or 0x0002 when the application is exiting."

    My application runs as a "job". If it checks IsProcessInJob, then injects Windows+U, then exits the user is left staring at the Ease of Access. I put the proper values at the key specified. Why?

    From: "Transferring secure desktop settings

    If your accessibility application supports the secure desktop, you can use the registry to copy settings when the application transitions to the secure desktop. Copying settings helps makes the transition to the secure desktop more seamless for the user.

    To copy settings, set the application's CopySettingsToLockedDesktop registry key to 1, and store the settings in the following registry location.

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

    The Ease of Access Center monitors this registry location while the application is running. When a transition to the secure desktop occurs, the Ease of Access Center copies the settings to the same location in the secure desktop’s HKCU hive. The application can then read the settings and resume its state."

    My app does support secure desktop. Again, this does not behave as documented. I save my settings as per the above but when switched to secure desktop the settings are not there to be read. It appears they are not copied, why?

    And finally, from: "Running at installation and on the logon desktop

    If you append your accessibility application's registered key name to the string at the following registry location, Windows will launch your application immediately after it is installed. Also, Windows will automatically run your application whenever the logon desktop is active.

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

    The Configuration key is a comma-delimited string. To add your application, append a string that is the same as your application's registry key at HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\."

    The above does not "launch my application immediately after it is installed". Why?

    Are there any working examples of this registration process?

    Thanks for any help!

    Sunday, November 10, 2013 10:00 PM