FindWindowEx 找不到子控件的句柄,求教

baidusk 2013-04-09 05:25:18
const int WM_GETTEXT = 0x000D;
const int WM_GETTEXTLENGTH = 0x000E;
IntPtr hwndCalc = FindWindow(null, "硬盘序列号更改工具");
// 此句???? 用Edit类名,可以找到子控件的句柄,但是那个软件里面 有三个Edit的类名 用标题 1234-5678 就找不到句柄,咋个原因呢?
IntPtr hwndThree = FindWindowEx(hwndCalc, 0, "Edit", null);
SetForegroundWindow(hwndCalc);
if (hwndCalc != IntPtr.Zero)
{
int TextLen;
TextLen = SendMessage((int)hwndThree, WM_GETTEXTLENGTH, 0, 0);
Byte[] byt = new Byte[TextLen];
SendMessage((int)hwndThree, WM_GETTEXT, TextLen + 1, byt);
string str = Encoding.Default.GetString(byt);

}



...全文
576 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidusk 2013-04-09
  • 打赏
  • 举报
回复
已经解决,用了个笨办法..
        [DllImport("user32", EntryPoint = "GetWindow")]
        public static extern IntPtr GetWindow(
                IntPtr hwnd,
                int wFlag
        );
IntPtr hwndCalc = FindWindow(null, "硬盘序列号更改工具");
            IntPtr hwndThree = FindWindowEx(hwndCalc, 0, "Edit", null);
            hwndThree = GetWindow(hwndThree, 2);
gxingmin 2013-04-09
  • 打赏
  • 举报
回复
用EnumChildWindows API枚举Edit试试

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧