Tag: window handles

启动进程后C#获取窗口句柄

有没有办法在使用Process.Start()从C#应用程序启动窗口后获取窗口句柄(IntPtr)?

C#Process.MainWindowHandle总是返回IntPtr Zero

这是我的代码: using (Process game = Process.Start(new ProcessStartInfo() { FileName=”DatabaseCheck.exe”, RedirectStandardOutput = true, CreateNoWindow = true, UseShellExecute = false })) { lblLoad.Text = “Loading”; int Switch = 0; while (game.MainWindowHandle == IntPtr.Zero) { Switch++; if (Switch % 1000 == 0) { lblLoad.Text += “.”; if (lblLoad.Text.Contains(“….”)) lblLoad.Text = “Loading.”; lblLoad.Update(); game.Refresh(); } } 问题是,那个游戏.MainWindowHandle总是IntPtr.Zero。 我需要找到运行过程的IntPtr以确认游戏是由启动器启动的,所以我让游戏发送它的IntPtr并让发射器响应它是否正常。 但为此,我必须具体了解运行过程的IntPtr。 […]

使用Selenium使用WindowHandles跟踪和迭代选项卡和窗口的最佳方法

我们正在使用Selenium webdriver为Internet Explorer 11进行UI测试。在经过测试的Web应用程序中,有几个屏幕弹出。 在几个测试中,我们最终得到三个browserwindows,还有三个Driver.WindowHandles。 要从一个WindowHandle切换到另一个WindowHandle,我们预计Driver.WindowHandles将像最旧的窗口一样排序,最新的窗口最后。 但情况并非如此:它完全是随机的! 因为windowhandle是一个GUID,所以我们最终使用WindowHandle GUID作为键创建一个字典,其中包含在浏览器窗口中加载的页面类型的值。 但是这也导致在关闭窗口时维护字典。 对于这么简单的事情来说,这似乎是很多工作。 有更好的解决方案吗?