public List <AccessibleJvm> EnumJvms(Func <IntPtr, AccessibleWindow> windowFunc) { if (_library == null) { return(new List <AccessibleJvm>()); } try { var windows = new List <AccessibleWindow>(); var success = NativeMethods.EnumWindows((hWnd, lParam) => { var window = windowFunc(hWnd); if (window != null) { windows.Add(window); } return(true); }, IntPtr.Zero); if (!success) { var hr = Marshal.GetHRForLastWin32Error(); Marshal.ThrowExceptionForHR(hr); } // Group windows by JVM id return(windows.GroupBy(x => x.JvmId).Select(g => { var result = new AccessibleJvm(this, g.Key); result.Windows.AddRange(g.OrderBy(x => x.GetDisplaySortString())); return result; }).OrderBy(x => x.JvmId).ToList()); } catch (Exception e) { throw new ApplicationException("Error detecting running applications", e); } }
public AccessibleJvm BuscarJanelaJava(string TituloJanela) { var qtdProcesso = _accessBridge.EnumJvms(); AccessibleJvm jvm = null; foreach (var p in qtdProcesso) { var title = p.GetTitle(); if (title.Contains("Omni")) { jvm = p; break; } } return(jvm); }