请问FindWindowEx的用法
请教FindWindowEx的用法

我的代码是这样写的,但根本获取不到,这个问题折腾了几天都没解决,请求高手相助。
------解决思路----------------------
请问你是哪一步的句柄没有获取到?也许是那个...字符有问题,你可以直接在即时窗口中试的,很容易就能试出来,还有补充一句,C#有专门的UI操作库UI Automation,简单易用,功能强大,配合UISpy工具,几乎是没有不能干的
------解决思路----------------------
通常这种情况下
在你没有完成期望调用结果的函数下面
Console.WriteLine(new Win32Exception(Marshal.GetLastError()).Message);
直接手打的代码 估计没有代码提示 估计有拼写错误
看看 为什么没有找到
------解决思路----------------------
哦 对了 你的在
[dllimport("user32.dll",SetLastError = true)] 才能抓取到 错误码
------解决思路----------------------
有可能是ad_group#11字符不匹配,你可以换种方法,例如取第5个窗体
------解决思路----------------------
就是说采用枚举窗体的方式,例如使用GetWindow或EnumChildWindows函数遍历到指定窗体序列号的窗体即可,像你的那个ad_group#11就是第5个
我的代码是这样写的,但根本获取不到,这个问题折腾了几天都没解决,请求高手相助。
IntPtr ptrTaskbar = FindWindow(null, "AnyDesk");
if (ptrTaskbar != IntPtr.Zero)
{
IntPtr childHwnd = FindWindowEx(ptrTaskbar, IntPtr.Zero, null, "新建连接");
if (childHwnd != IntPtr.Zero)
{
IntPtr childHwnd1 = FindWindowEx(childHwnd, new IntPtr(0), "ad_group#11", null);
if (childHwnd1 != IntPtr.Zero)
{
IntPtr childHwnd2 = FindWindowEx(childHwnd, new IntPtr(0), "Static", "工作台密码更改...");
}
}
}
------解决思路----------------------
请问你是哪一步的句柄没有获取到?也许是那个...字符有问题,你可以直接在即时窗口中试的,很容易就能试出来,还有补充一句,C#有专门的UI操作库UI Automation,简单易用,功能强大,配合UISpy工具,几乎是没有不能干的
------解决思路----------------------
通常这种情况下
在你没有完成期望调用结果的函数下面
Console.WriteLine(new Win32Exception(Marshal.GetLastError()).Message);
直接手打的代码 估计没有代码提示 估计有拼写错误
看看 为什么没有找到
------解决思路----------------------
哦 对了 你的在
[dllimport("user32.dll",SetLastError = true)] 才能抓取到 错误码
------解决思路----------------------
有可能是ad_group#11字符不匹配,你可以换种方法,例如取第5个窗体
------解决思路----------------------
就是说采用枚举窗体的方式,例如使用GetWindow或EnumChildWindows函数遍历到指定窗体序列号的窗体即可,像你的那个ad_group#11就是第5个