Hello, the Unity community! I am developing an application that requires the detection of any focus changes such as a textbox that is clicked or an input field that is focused on the Windows system. I searched for the solution and found System.Windows.Automation might be the answer. To put it simply, my application needs to know any focus changes.
To use System.Windows.Automation, I copy the .DLL files (UIAutomationClient.dll, UIAutomationClientsideProviders.dll, UIAutomationProvider.dll, UIAutomationTypes.dll) from the path “C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0” into the Asset folder.
However, whenever I subscribe to the event using Automation.AddAutomationFocusChangedEventHandler() in my code and hit play. the editor just shuts down without throwing any error or crash message. I tried to make a build and get the same result, and I didn’t find anything in the Player.log.
Have anyone tried using System.Windows.Automation in Unity successfully? If this namespace is not working on Unity, is there any way that I can achieve the same thing (to subscribe to some events so that my application knows there is a focus change)? Thanks a lot and have a good day.
private void Start()
{
var focusHandler = new AutomationFocusChangedEventHandler(OnFocusChange);
Automation.AddAutomationFocusChangedEventHandler(focusHandler);
}
private void OnFocusChange(object src, AutomationFocusChangedEventArgs e)
{
throw new System.NotImplementedException();
}