62,073
社区成员
发帖
与我相关
我的任务
分享
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
//主窗体句柄 这个可以得到
IntPtr mainHandle = FindWindow(null, "TeamViewer");
if (mainHandle != IntPtr.Zero)
{
// 查找按钮句柄 根据文本内容可以获取
IntPtr iBt = FindWindowExControl(mainHandle, "允许远程控制", true,0);
//根据类型去获取 始终获取为0
IntPtr iBt1 = GetTextEdit(mainHandle, "Edit", 0);
}
/// <summary>
/// 获取文本框控件
/// </summary>
/// <param name="hwnd">文本框所在父窗口</param>
/// <param name="text">文本框文本,null为搜索所有</param>
/// <param name="iLevel">父窗口上第几个文本框</param>
/// <returns>文本框句柄</returns>
private IntPtr GetTextEdit(IntPtr hwnd, string text, int iLevel)
{
IntPtr iEditor = IntPtr.Zero;
IntPtr iCode = IntPtr.Zero;
if (hwnd != IntPtr.Zero)
{
for (int i = 0; i < iLevel; i++)
{
iCode = FindWindowEx(hwnd, iCode, null, null);
if (iCode == IntPtr.Zero)
break;
}
if (iCode != IntPtr.Zero)
iEditor = FindWindowEx(iCode, IntPtr.Zero, null, text);
}
return iEditor;
}