Quantcast
Channel: Windows Desktop Development for Accessibility and Automation forum
Viewing all 585 articles
Browse latest View live

UI Automation AddAutomationEventHandler delay

$
0
0

Hi there,

I started to use the C++ API for UI Automation a couple of weeks ago. So I'm still quite a newbie. I was able to achieve some things, that I couldn't do by using the managed C# version, so that's already great. I just ran into a couple of issues related to a quite bad performance. I hope somebody is able to point me in the right direction or even can explain me how to do things better, respectively where I made mistakes.

1. In the documentation for the tree walker is written that you should not use the root element for the entry point, so I selected the calculator as a hard coded entry point for my proof of concept. I got the name from INSPECT and used IUIAutomationElement::FindFirst to locate it and run the tree walker to print all children from there. FindFirst unfortunately needs like 70sec or something to locate the calculator, I assume it has to walk the whole tree. So where is the point in not walking the whole tree myself in the first place? Am I missing something here? When I executed the tree walking twice, the second execution also took double the time, so should I cache it myself?

2. I implemented the FocusChangedEventHandler and StructureChangedEventHandler like it's described here: https://msdn.microsoft.com/en-us/library/windows/desktop/ff625914(v=vs.85).aspx that worked finde. Then I added an implementation for some general events like the top most example at before mentioned how to. That worked not as good. Every time I add a new event handler it needs +60 seconds, so the first is executed in approx. 0 sec, the next is added within 60sec, the third in 120sec, fourth 180sec,... And I triple checked if I did a timeout or something myself, but I couldn't find one. Does anyone know where that comes from?

Thanks everyone, I'd really appreciate if you could help me :)



Custom start menu with network location application

$
0
0

Hello,

I am making a custom startmenu for some of our users that have to be locked down,

I can attach the installed application no problem, the issue comes when a network application needs to be added

for example we have a "P" drive that can be access by any person on the domain, inside this we a number of application that users need to use, when i am pinning them to the start menu and applying the start menu these links do not show as they are not in the appdata\start menu folder for another user

Is there a way to pin network area application to a custom menu?

if any more information is needed please ask


here is what i thought i could do:

<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="P:\Heinemann\KS3\Mira\at\Wrapper.lnk" />




IUIAutomation not working - Windows.Automation does - Get selected text

$
0
0

I converted my System.Windows.Automation code to the newer, faster IUIAutomation framework. I want to get the current selected text in any application (other app needs to support Automation of course). See the NEW Code below:

CUIAutomation _automation = new CUIAutomation();                    
var element = _automation.GetFocusedElement();
                    if (element != null)
                        {
                        IUIAutomationTextPattern textPattern = (IUIAutomationTextPattern) element.GetCurrentPattern(10014);

                        if(textPattern != null)
                        {
                            var sb = new StringBuilder();
                            var range =  textPattern.GetSelection();
                            sb.Append(range.GetElement(0).GetText(-1));
                            return sb.ToString();
                        }
                    }

Weirdly, this code only works in Visual Studio itself and no other app where it should (Edge browser for example), but when I add (add the beginning of the function) the following codepiece from the old System.Windows.Automation framework it suddenly works in expected apps (Edge browser for example).

var x = AutomationElement.FocusedElement;

There seems to be something broken in the IUIAutomation framework. Adding the old codepiece is not an option. It drastically slowes down the code. How can this be fixed?

The findAll method in UIAutomation is very slow

$
0
0

This is my code: 

window.FindAll(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));

It took three minutes to execute the command......

I want to get the arrays that findAll() method returns, But this method very slow, It is have update?

If you can, I'd like to hear your suggestion, Thanks.

The platform I used is .Net framework 4.0

Which support team should I call at Microsoft if I need to ask questions about Windows Automation API?

$
0
0

I have some questions regarding UIA and they are not being answered any where including these forums and StackOverflow. 

I wanted to reach out to Microsoft to help resolve the situation I am in regarding UIA. 

My questions are development questions and are dealing with UIA in Windows Automation API.

Which support team would be best able to help me and how do I contact them?

Inspect.exe is unable to see IE11 Windows Security dialog username and password controls since Windows 10 1709

$
0
0
Working with SSO companies Imprivata, Caradigm/Sentillion. Their products are unable to sign into the IE11 Windows security dialogs. Worked with older versions of Windows. Works with Edge.  Strange thing the older UISpy.exe tool can see the controls. The products are designed to work with the newest UI Automation API. We don't want to go back and use the older API.  We have heard it works in some version of Windows 10, but did a clean install of 1709 and does not work with that.

UIAutomation method ElementFromPoint() retrieves an incorrect element from Notepad on Windows 10

$
0
0

We are developing a C# Windows Forms App and use UI Automation to record user activity. Our app declares its DPI-awareness as Per-monitor, so the system doesn't lie to it with coordinate virtualization.

On Windows 10 we ran into an issue with Notepad: after a screen scaling performed, an incorrect element is returned when calling UIA methodElementFromPoint() with correct physical coordinates passed. Also, coordinates of its BoundingRectangle returned by aCurrentBoundingRectangle() call are also incorrect: divided by the current screen scale value, i.e. 1.5 for 150%.

It looks like a bug in Per-monitor implementation of Notepad for Windows 10.
Has anyone encountered this problem before and how did you solve it?


Background

Not all UI elements of the Notepad window are affected: only System button and Main menu items. Other elements, like main text area, scroller, window title, dialog buttons, submenu items, are handled properly.

Consider the following test code:

private CUIAutomation automation = new CUIAutomation();
public async Task GetElement(int x, int y)
{
    try
    {
        Debug.WriteLine($"MouseDown received: X={x} Y={y}");
        await Task.Run(() =>
        {
            // Retrieving an UIA element lying on physical coordinates
            tagPOINT point = new tagPOINT { x = x, y = y };
            IUIAutomationElement clickedElement = automation.ElementFromPoint(point);
            var elementName = clickedElement.GetCurrentPropertyValue(30005);
            var elementRect = clickedElement.CurrentBoundingRectangle;

            // Actually retrieved UIA element
            Debug.WriteLine($"UIA element: Name={elementName} " +
                $"Rect=[left={elementRect.left} top={elementRect.top} right={elementRect.right} bot={elementRect.bottom}]");
        });
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex);
    }
}

On Win 10 this code returns an incorrect element and BoundingRectangle for the "File" main menu item:

MouseDown received: X=735 Y=391
UIA element: Name=Application
Rect=[left=475 top=249 right=822 bot=268]


Just incorrect BoundingRectangle for the System button:

MouseDown received: X=701 Y=282
UIA element: Name=System
Rect=[left=453 top=183 right=475 bot=205]

And correct element and BoundingRectangle for other UI controls (i.e. File -> Save submenu item):

MouseDown received: X=1386 Y=666
UIA element: Name=Save
Rect=[left=1320 top=652 right=1452 bot=691]

These results are not reproducing on older versions of Notepad that declares itself as System-DPI-aware.

For instance, on Windows 7 always correct elements and bounding <g class="gr_ gr_37 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" data-gr-id="37" id="37">rects</g> are retrieved.

Also, I've tested other apps on Win 10 that implement Per-monitor DPI-awareness mode: Acrobat Reader DC, Edge, Skype, Slack, Explorer. Main menus of these apps are handled properly too: correct elements and bounding <g class="gr_ gr_51 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling" data-gr-id="51" id="51">rects</g> are retrieved.




Accessing "Readonly" property of UI control using AutomationElement::AutomationElementInformation

$
0
0

Hello,

I am working on UI automation project using .NET's UI automation libraries.

I want to check if textbox is readonly or not using AutomationElement::AutomationElementInformation structure.

However, there is no such property for accessing ReadOnly status of the textbox. There are properties like "IsEnabled",

"IsKeyboardFocusable" etc. But, I am not able to determine the Readonly status using these properties.

Is there any workaround to do this?

Thank you in advance!

Navnath


Unable to access XAML elements in ComboBox header through UIAutomation

$
0
0

I have a ComboBox with a header

<ComboBox x:Name="Box"><ComboBox.Header><StackPanel Orientation="Horizontal"><TextBlock Text="This is a combobox" x:Name="Block" AutomationProperties.Name="TextBlock1" /><FontIcon VerticalAlignment="Top"
                      AutomationProperties.AutomationId="Error"
                      FontFamily="Segoe MDL2 Assets"
                      Margin="2 0"
                      Glyph="&#xEB90;"
                      x:Name="FontIcon"
                      Foreground="DarkRed"/></StackPanel></ComboBox.Header><ComboBoxItem>Green</ComboBoxItem><ComboBoxItem>Red</ComboBoxItem></ComboBox>

However, I am not able to look into the header through inspect.exe. However, I am able to look at the header if defined in a TextBox or a ToggleSwitch. Is there is a way that I can access the header in a ComboBox?

PS: Unfortunately, the forum doesn't allow me to upload the images.

UIAutomation tree is broken in terms of parent-child relationship

$
0
0

The scenario is following:

- inspect.exe finds focused element E

- get parent P of element E

- E is not a child of P

Tree walker methods GetParent, GetFirstChild, GetNextSibling are used to traverse the tree.

The aforementioned element E is a drop down list that appeared after the list was expanded.

The environment is as follows:

- Windows 10 with latest updates

- Application being automated is Windows Forms application

- CUIAutomation8 implementation

The application being automated has other peculiarity: when one tries to acquire AutomationId of an element belonging to that application it crashes.

I know that there were problems with inconsistent tree structures. There is even a tool that can verify contract on UI Automation implementation(VisualUIAVerifyNative).

The questions are following:

- is any way to get to that element E when traversing the tree from the root (e.g. such as enforce rebuilding the tree structure) ?

- is the problem specific to that application or just for whole Windows Forms client provider?

- is it possible for such problems to be fixed in upcoming Windows updates?

- is UI Automation being actively developed?



Windows Desktop Automation [UIA]

$
0
0

Hi,

I need to automate my .Net Windows desktop application GUI.

Microsoft provides the

1) [UIAutomationClient.dll + UIAutomationTypes.dll]

2) UIAComWrapper.dll 

3) UIAutomationCore.dll

From the above which one of the dll need to use for GUI automation.

Share the download path for the above dlls. 


Submit for MS Store

$
0
0
I have been a tech developer for Assistive Technology since 1983. Apple recently started including some similar products to mine in the Apple Store. I would love for MS to offer some of my accessibility hardware products, like the Apple items, in the MS Store.  But I'm having a HECK of a time trying to find the buyer or the person that makes those types of decisions of what goes into the MS Store.  I've spent many hours going around in circles.  SOMEONE at MS must make those decisions.  Does anyone know who I can approach?  Thanks!

Having trouble getting IUI_Automation Events to work

$
0
0

I followed Guy Barker's recommendation to build an interop wrapper around the UIAutomation.dll here and built my wrapper, added it to a new .NET Console project, and I'm just trying to get an event to fire on WindowOpen event:

using interop.UIAutomationCore;
using System;

namespace DMSMonitor
{

    class Program
    {
        static void Main(string[] args)
        {
            Scraper s = new Scraper();
            s.Init();
            Console.WriteLine("Press any key to quit...");
            while (true)
            {
                var info = Console.ReadKey(true);
                if (info.KeyChar == 's')
                {
                    // we cannot add an event handler inside another event handler https://stackoverflow.com/a/32786268/843567
                    // so we'll trigger subscribing to the PropertyChanged event handler by entering this key 's'
                    s.Subscribe();
                }
                else
                {
                    break;
                }
            }
        }
    }

    public class Scraper : IUIAutomationEventHandler, IUIAutomationPropertyChangedEventHandler, IUIAutomationFocusChangedEventHandler
    {

        private static string title = "MyAppTitle";
        private IUIAutomation uia = new CUIAutomation();
        private IUIAutomationElement root;
        private IUIAutomationElement dms;
        private IUIAutomationCacheRequest cacheReq;

        public void Init()
        {
            cacheReq = uia.CreateCacheRequest();
            root = uia.GetRootElementBuildCache(cacheReq);
            Console.WriteLine("added new window open event listener");
            uia.AddAutomationEventHandler(UIA_EventIds.UIA_Window_WindowOpenedEventId, root, TreeScope.TreeScope_Element, cacheReq, this);
            uia.AddAutomationEventHandler(UIA_EventIds.UIA_Window_WindowClosedEventId, root, TreeScope.TreeScope_Descendants, cacheReq, this);
            uia.AddAutomationEventHandler(UIA_EventIds.UIA_MenuOpenedEventId, root, TreeScope.TreeScope_Descendants, cacheReq, this);
            uia.AddFocusChangedEventHandler(cacheReq, this);
        }

        public void Subscribe()
        {
            if (dms != null)
            {
                SubscribePropertyChange(dms);
            }
        }

        [MTAThread]
        public void HandleAutomationEvent(IUIAutomationElement sender, int eventId)
        {
            Console.WriteLine("handle automation event, sender={0}, eventid={1}", sender.CurrentName, eventId);
            if (sender != null)
            {
                if (sender.CurrentName.Equals(title))
                {
                    dms = sender;
                    Console.WriteLine("new window opened with name {0}", sender.CurrentName);
                }
            }
        }

        private void SubscribePropertyChange(IUIAutomationElement element)
        {
            uia.AddPropertyChangedEventHandler(element, TreeScope.TreeScope_Element, null, this, new int[] { UIA_PropertyIds.UIA_NamePropertyId });
            Console.WriteLine("added subscription for NameProperty change on {0}", element.CurrentName);
        }

        [MTAThread]
        public void HandlePropertyChangedEvent(IUIAutomationElement sender, int propertyId, object newValue)
        {
            Console.WriteLine("property changed {0}, {1}, {2}", sender.CurrentName, propertyId, newValue);
        }

        [MTAThread]
        public void HandleFocusChangedEvent(IUIAutomationElement sender)
        {
            Console.WriteLine("focus changed {0}", sender.CurrentName);
        }
    }
}

When I run the app, it sits and waits (presumably) to fire the event handler when a new window is opened off the desktop / root element, but the event never occurs.  Here's what I see in the output, though...these native exceptions are thrown:

'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\clbcatq.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\UIAutomationCore.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\uxtheme.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\CoreMessaging.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\CoreUIComponents.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\SHCore.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntmarta.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\WinTypes.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleacc.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sxs.dll'. Symbols loaded.
mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!779B69CF: (caller: 779B656E) ReturnHr(1) tid(276c) 8002801D Library not registered.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\OneCoreUAPCommonProxyStub.dll'. Symbols loaded.
'DMSMonitor.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Symbols loaded.
The thread 0x285c has exited with code 0 (0x0).
The thread 0x421c has exited with code 0 (0x0).
The thread 0x1e98 has exited with code 0 (0x0).
The thread 0x3b70 has exited with code 0 (0x0).
mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!779B69CF: (caller: 779B656E) ReturnHr(2) tid(276c) 8002801D Library not registered.
mincore\com\oleaut32\dispatch\ups.cpp(2125)\OLEAUT32.dll!779B69CF: (caller: 779B656E) ReturnHr(3) tid(276c) 8002801D Library not registered.
Exception thrown at 0x7477D722 in DMSMonitor.exe: Microsoft C++ exception: wil::ResultException at memory location 0x06E8E3F0.
Exception thrown at 0x7477D722 in DMSMonitor.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
Exception thrown at 0x7477D722 in DMSMonitor.exe: Microsoft C++ exception: wil::ResultException at memory location 0x06E8DE68.
Exception thrown at 0x7477D722 in DMSMonitor.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000.
The thread 0x3ff0 has exited with code 0 (0x0).

When I launch any new application on the desktop, I would think the event handler fires, but it does not.  I'm looking for a specific app title in that code above, but nonetheless, I do a Console.WriteLine for any event and it never triggers.  I think the problem is related to the native exceptions it is throwing but I don't have any way to introspect those?

This is on Windows10, using VS 2017, just a simple C# Console App.

Any idea what I'm doing wrong here?

I did try using the .NET UI Automation API, and I was successful in getting the WindowOpen event to fire there, but I was having problems getting the PropertyChanged event to fire, so I started digging and that's when I found Guy Barker's posts, and decided to try the interop wrapper, but now I can't get the event to fire at all.


Click menu item using .NET UI Automation

$
0
0

Hello,

I am working on a Automation project using .NET UI Automation APIs. 

I want to click a menu item on a Window, say w.

The only information that I have is handle of w. Now, I have to expand a Menu and select a menu item of it.

As per my understanding, I cam expand main menu [For example, File menu] by its name using Automation element FindFirst Menthod like below:

AutomationElement menu= winElement.FindFirst(TreeScope.Descendants,new PropertyCondition(AutomationElement.NameProperty,"File"));

ExpandCollapsePattern p = menu.GetCurrentPattern(ExpandCollapsePattern.Pattern) as ExpandCollapsePattern;
p.Expand();

Here, winElement is targeted window. Now, I am trying to find menu item "Reload" as below:

AutomationElement submenu = menu.FindFirst(TreeScope.Element, new PropertyCondition(AutomationElement.NameProperty, "Reload"));

But it is always returning null.  I also tried LocalizedControlTypeProperty of AutomationElement, but no luck.

Can you please tell me the better way to click a menu item with only information of window handle?

Thank you in advance!

Navanth

How Can I Force A TextPattern.TextChanged event to fire in standard WinForms app?

$
0
0

I'm trying to build an automation program for an application I don't often have unlimited access to, so to work around this I'm mimicing the UI of this legacy application in a WinForms app.  There are some differences.  For example, I know for a fact that when the text changes on certain controls in the target legacy application the TextPattern.TextChanged event does fire (can see this when I run accevent.exe program).

So, I'm trying to test this with my WinForms test app that mimics the legacy application, but so far I have been unsuccessful in getting this event to fire using standard WinForms controls: TextBox, RichTextBox, etc.

Is there a way to force the event to fire?  Is there some property I'm missing and am not setting?  Why won't this event fire on a standard text box when the value changes?  The standard WinForms TextChanged event fires, but I'm looking for the UI Automation TextPattern.TextChanged event.

Thanks in advance for the help



Windows 10 - AutomationElement FindFirst FindAll - "Element not Available" - Operation timed out

$
0
0

On a windows 10 machine, I am seeing some problem where AutomationElement.FindFirst or AutomationElement.FindAll will generate the error "Element Not Available". (This never occurs in Windows 7)

On some windows 10 machines everything works find. On some other machine hosted in a different location nothing works because of this error.

After a lot of investigation I can say the machines are identical in what is installed. Only difference is where they are hosted (Performance is probably different)

The InnerException for these error is : {"Operation timed out. (Exception from HRESULT: 0x80131505)"}

So obviously it times out at searching the control.

The problem is that it times out right away, probably a fraction of a seconds. 

Let say I have a toolbar with 40 buttons. If I use findfirst using AutomationID, the first 30 button will be found without problem, then starting at 31 it sometimes works and sometime not. Then button 40 never works. So it is timing out but way to quickly, pretty much instantly.

So the Question is: Where is the timeout forFindFirst & FindAll defined and how do I increase it to something more than a fraction of a second?

Question about UI Automation and Windows Service

$
0
0

Hi, I have a cmd line .NET app that uses UI Automation.  I then wrapped it as a service using the TopShelf utility: https://github.com/Topshelf/Topshelf -- this simply makes it a bit easier to wrap the command as a windows service.

If I run the app as a cmd line program, it works fine.  

If I run it as a service, however, it doesn't seem to work -- getting logging out of the service is a bit tougher to achieve, but I figured I'd just ask briefly if anyone knows if there is any problem running UI Automation code (using .NET API in C#) while running as a service.  I've tried running as Local System, Local Service -- both seem to behave the same.

Thanks in advance

Access "Windows Security" dialog from my MFC app

$
0
0

I am struggle to hit OK button from a "Windows Security" dialog, from my MFC app. Here is this dialog in Win7:

and here is the same dialog in Win10:

after a friend advice me to get informations regarding this dialogs with inspect.exe, here is what I get from introspection:

How found:	Selected from tree...
Name:	"Windows Security"
ControlType:	UIA_WindowControlTypeId (0xC370)
LocalizedControlType:	"window"
BoundingRectangle:	{l:492 t:276 r:948 b:638}
IsEnabled:	true
HasKeyboardFocus:	false
ProcessId:	13708
RuntimeId:	[2A.1607F2]
FrameworkId:	"XAML"
ClassName:	"Credential Dialog Xaml Host"
NativeWindowHandle:	0x1607F2
ProviderDescription:	"[pid:6776,providerId:0x1607F2 Main:Nested [pid:13708,providerId:0x1607F2 Main(parent link):Unidentified Provider (unmanaged:Windows.UI.Xaml.dll)]; Hwnd(parent link):Microsoft: HWND Proxy (unmanaged:uiautomationcore.dll)]"
ClickablePoint:	{x:720 y:457}
LegacyIAccessible.ChildId:	0
LegacyIAccessible.DefaultAction:	""
LegacyIAccessible.Description:	""
LegacyIAccessible.Help:	""
LegacyIAccessible.KeyboardShortcut:	""
LegacyIAccessible.Name:	"Windows Security"
LegacyIAccessible.Role:	window (0x9)
LegacyIAccessible.State:	focusable (0x100000)
............
FirstChild:	"Windows Security" text
LastChild:	"Cancel" button
Next:	"Pagina login - Internet Explorer" window
Previous:	"Inspectx86" window
Other Props:	Object has no additional properties
Children:	"Windows Security" text"Close" button"" pane"OK" button"Cancel" button
Ancestors:	"Desktop 1" pane
	[ No Parent ]

and the OK button is present itself just like this:

How found:	Selected from tree...
Name:	"OK"
ControlType:	UIA_ButtonControlTypeId (0xC350)
LocalizedControlType:	"button"
BoundingRectangle:	{l:517 t:581 r:718 b:613}
IsEnabled:	true
IsOffscreen:	false
IsKeyboardFocusable:	true
HasKeyboardFocus:	false
AccessKey:	"Alt, O"
ProcessId:	13708
RuntimeId:	[2A.1607F2.4.12]
AutomationId:	"OkButton"
FrameworkId:	"XAML"
ClassName:	"Button"
IsControlElement:	true
IsContentElement:	true
ProviderDescription:	"[pid:13708,providerId:0x0 Main(parent link):Unidentified Provider (unmanaged:Windows.UI.Xaml.dll)]"
IsPeripheral:	false
LiveSettingProperty:	Off (0)
IsPassword:	false
IsRequiredForForm:	false
IsDataValidForForm:	true
ClickablePoint:	{x:617 y:597}
Culture:	1033
Orientation:	0
PositionInSet:	4294967295
SizeOfSet:	4294967295
Level:	4294967295
LandmarkType:	none (0x0)
HeadingLevel:	HeadingLevel_None (0x138B2)
LegacyIAccessible.ChildId:	0
LegacyIAccessible.DefaultAction:	"Press"
LegacyIAccessible.Description:	""
LegacyIAccessible.Help:	""
LegacyIAccessible.KeyboardShortcut:	"Alt, O"
LegacyIAccessible.Name:	"OK"
LegacyIAccessible.Role:	push button (0x2B)
LegacyIAccessible.State:	focusable (0x100000)
LegacyIAccessible.Value:	""
.....
FirstChild:	"OK" text
LastChild:	"OK" text
Next:	"Cancel" button
Previous:	"" pane
Other Props:	Object has no additional properties
Children:	"OK" text
Ancestors:	"Windows Security" window"Desktop 1" pane
	[ No Parent ]

 

this post is derived from this one: https://social.msdn.microsoft.com/Forums/en-US/337d6aa4-31eb-4e6d-a207-fd2332ad0a9d/chtmlview-access-quotwindows-securityquot-dialog?forum=vcgeneral

How can I remotely hit "OK" button, from my MFC app ? Can you give me a little help ?

How to get RDP session to auto-logoff when User Logs Out of Application.

$
0
0

Have seen lots of talk around time out variables for RDP Session, but nothing on how to auto-logout RDP session when User Logs Out of an Application.

Use Case: Created "controlled access" to Application Users with Server User Profile logging them into Application once they get to the Application Server via RDP.

1.  User logs into Server via RDP.
2.  Session auto-starts Application for Users.
3.  User does what they need in Application and Logs Out of Application.
4.  Application Closes, but RDP session is still logged in with Black Screen - which is okay (we don't want users going anywhere else in the RDP session or the server).

5.  User closes the RDP window (click the X in upper right) to close the RDP session.

Is there ANYTHING I can code to auto-logoff RDP session after user Logs off Application?

[UWP] UI Accessibility Checker Tool throwing "MissingItemInTabOrder" error in ListView

$
0
0

Hi All,

I am getting "MissingItemInTabOrder" error in ListView while running UI Accessibility Checker Tool by enabling UIAVerifications.CheckTabbingUIA  rule checkbox.Kindly any one having the solution how to fix the error.

Tabbing is working fine but while validating our application through  UI Accessibility Checker Tool it's giving the error as "MissingItemInTabOrder" with text "This element appears to be tabbable but is not in the tab order".

Thanks,

Jyotiranjan

Viewing all 585 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>