2010-12-03 39 views
1

通过Windows API,我可以得到当前打开的所有窗口的列表,但似乎IntPtr不以任何特定顺序返回。我想知道是否有办法按照打开它们的顺序来打开窗户。例如,如果我打开2个IE窗口,然后是记事本窗口,当我检索窗口列表时,我希望2个IE窗口位于记事本窗口之前。我在C#中这样做。确定打开的窗口的顺序

+0

你用什么API调用返回Windows列表? – KevenK 2010-12-03 18:51:44

+0

EnumDesktopWindows – 2010-12-03 18:56:15

回答

3

句柄值是混淆指针,你不能依赖它们的值。他们得到回收。

长距离拍摄是GetWindowThreadProcessId()来获取拥有该窗口的线程的ID。 OpenThread()获取它的句柄。 GetThreadTimes()在线程创建时找出它。 CloseHandle()清理。但结果却只是一种猜测,确实避免想问这样一个问题。访问pinvoke.net进行声明。