API 子窗体,深度查找
/// <summary>
/// 获得子窗体句柄
/// </summary>
/// <param name="clIpt">*父窗体句柄</param>
/// <param name="PClass">子窗体类别,没有添null.有时,查找第一个符合的子窗体句柄</param>
/// <param name="Depth">当PClass为null时。定义向下查找深度。当为0时,找最底层子窗体</param>
/// <returns></returns>
public static IntPtr GetWindowForEX(IntPtr clIpt ,string PClass,int Depth)
{
IntPtr IptRetn = new IntPtr(0);
if (PClass != null)
{
FindChildWindow FCW = new FindChildWindow(clIpt, PClass);
IptRetn = FCW.FoundHandle;
}
else
{
IntPtr CnIpt = clIpt;
if (Depth == 0)
{
while (true)
{
IptRetn = FindWindowEx(CnIpt, IntPtr.Zero, null, "");
if (IptRetn == IntPtr.Zero)
{
IptRetn = CnIpt;
break;
}
CnIpt = IptRetn;
}
}
else
{
for (int i = 0; i < Depth; i++)
{
IptRetn = FindWindowEx(CnIpt, IntPtr.Zero, null, "");
CnIpt = IptRetn;
}
}
}
return IptRetn;
}
#region 启动提示音
spl.SoundLocation = @"D:\1.wav";
spl.PlayLooping();
Thread.Sleep(700);
spl.Stop();
#endregion
浙公网安备 33010602011771号