我正在使用生成 Internet Explorer 实例的第三方类。该类有一个属性 hWnd,它返回进程的 hWnd。
稍后,我可能想重用应用程序的实例(如果它仍然存在),因此我需要告诉我的帮助器类附加到它。在此之前,我想知道给定的 hWnd 是否仍然有效,否则我将生成另一个实例。
如何在 C# 和 .NET 3.5 中执行此操作?
如果是窗口句柄,可以调用isWindow(hWnd); http://msdn.microsoft.com/en-us/library/windows/desktop/ms633528(v=vs.85).aspx
来自msdn:
返回值
BOOL
如果窗口句柄标识
现有窗口,返回值为
非零。
如果窗口句柄无法识别
现有窗口,返回值
为零。评论
线程不应该使用 IsWindow
它没有创建的窗口,因为
之后窗户可能会被摧毁
这个函数被调用了。更远,
因为窗把手是回收的
句柄甚至可以指向
不同的窗口。
顺便说一句,由于您使用的是 .NET,因此您必须执行以下操作:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)