大
大狗熊
Unregistered / Unconfirmed
GUEST, unregistred user!
根据寻路兄所给代码<br>我已经可以获取自己需要的句柄标题,但是还有一个问题<br>就是窗体上的tlabel获取不到<br><br>var<br>hCurrentWindow:HWnd;<br>szText:array[0..254]of char;<br><br>begin<br><br>hCurrentWindow:=GetWindow(Wnd,GW_CHILD);<br>while hCurrentWindow<>0 do<br>begin<br>if GetWindowText(hCurrentWindow,@szText,255)>0 then<br>form1.Memo2.Lines.Add(StrPas(@szText));<br>hCurrentWindow:=GetWindow(hCurrentWindow,GW_HWNDNEXT);<br>end;<br>end;<br><br>用这段代码获取的东西全,但是这种取得NEXT句柄的东西,不是很好用,请高手指点下,怎么能在<br><br><br>function EnumerateChildWindows(hWnd: HWND; lParam: LPARAM): BOOL; stdcall;<br>var<br> ClassName: array [0..255] of Char;<br> WindowText: array [0..255] of Char;<br> I: Integer;<br> strPass: string;<br><br><br>begin<br> FillChar(ClassName, 256, 0);<br> GetClassName(hWnd, ClassName, 255);<br> GetWindowText(hWnd, WindowText, 255);<br><br>// Form1.mmo1.Lines.Add(StrPas(ClassName) + ': ' + StrPas(WindowText));<br><br><br>// EM_GETPASSWORDCHAR<br><br><br><br><br> //GetWindowLong(hWnd, )<br> if ((StrPas(ClassName) = 'TEdit') or (StrPas(ClassName) = 'TLabel')) then<br> {限制获取的句柄类型,并且定义获取内容不为空,如果只捕获密码,则加上<br> and (SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, 0) <> 0) }<br> begin<br> strPass := GetIDandPassword(hWnd);<br><br><br> form1.Memo1.Lines.Add(StrPas(ClassName) + '(' + StrPas(WindowText) + ')');<br> //form1.Memo1.Lines.Add(StrPas(ClassName) + '(' + StrPas(WindowText) + '): ' + strPass);<br> end;<br>Result := True;<br><br>end;<br><br><br>这段代码基础上获取TLABEL内容