我正在使用第三方类来生成Internet Explorer实例。该类有一个属性hWnd,它返回进程的hWnd。
稍后,我可能想要重用应用程序的实例(如果它仍然存在),所以我需要告诉我的帮助程序类附加到它。在此之前,我想知道给定的hWnd是否仍然有效,否则我将生成另一个实例。
我怎样才能在C#& .NET 3.5?
答案 0 :(得分:33)
如果是窗口句柄,您可以拨打isWindow(hWnd);
来自msdn:
返回值
BOOL
如果窗口句柄识别出一个 现有窗口,返回值为 非零值。
如果窗口句柄无法识别 现有窗口,返回值 是零。备注
线程不应该使用IsWindow 它没有创建的窗口,因为 之后窗户可能会被摧毁 这个功能被调用了。进一步, 因为窗户把手是回收的 手柄甚至可以指向一个 不同的窗口。
顺便说一句,因为你在.NET中,你必须做类似的事情:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);