各位大侠,现在知道有一个VC 6.0 编写的程序,鼠标双击以后会弹出一个窗口,里面有lable 、edit 的显示内容俺想拦截这些lable 、edit 的类名、text 值该怎么写呢?

解决方案 »

  1.   

    http://tech.ddvip.com/2007-09/118872400633475.html
      

  2.   

    var
      l_Handle: HWND;
      l_ClassName, l_WindowsText: array[0..1023] of char;
      l_ClassNameStr, l_Txt: string;
    begin
      l_Handle := GetWindow(Self.Handle, GW_CHILD);
      while l_Handle <> 0 do
      begin
        FillChar(l_ClassName, SizeOf(l_ClassName), Ord(' '));
        GetClassName(l_Handle, @l_ClassName, 50);
        l_ClassNameStr := l_ClassName;    if l_ClassNameStr = 'TEdit' then
        begin
          GetWindowText(l_Handle, l_WindowsText, 1024);
          l_Txt := l_WindowsText
          ShowMessage(l_Txt);
        end;
        l_Handle := GetWindow(l_Handle, GW_HWNDNEXT);
      end;
      

  3.   

    不好意思,还需要请教一下大侠
    我是想在一个程序运行的时候,将显示的一些数字截取下来
    用楼上的兄弟代码,改写成以下代码以后好像不行亚
    运行的时候,那个页面虽然显示了,但是出来的都是只有一个窗口类名和一个句柄
    但是好像没有子类了为甚么呢?procedure TFormClassNameFinder.Timer1Timer(Sender: TObject);
    var
        l_Handle   :   HWND;
        l_ClassName,   l_WindowsText:   array[0..1023]   of   char;
        l_ClassNameStr,   l_Txt:   string;
    begin
        //取当前鼠标所在窗口的句柄
        l_handle := WindowFromPoint(Mouse.CursorPos);
        while   l_Handle   <>   0   do
        begin
            //FillChar(l_ClassName,   SizeOf(l_ClassName),   Ord('   '));
            l_className := '';
            GetClassName(l_Handle,   @l_ClassName,   50);
            l_ClassNameStr   :=   l_ClassName;        //if   l_ClassNameStr   =   'TEdit'   then
            begin
                GetWindowText(l_Handle,   l_WindowsText,   1024);
                l_Txt   :=   l_WindowsText;
                //ShowMessage(l_ClassNameStr + ' ' + l_Txt);
                Memoinfo.Lines.Add(l_ClassNameStr + ' ' + l_Txt);
            end;
            l_Handle   :=   GetWindow(l_Handle,   GW_HWNDNEXT);
        end;
      if GetKeyState(VK_ESCAPE) < 0 then
      begin
        Timer1.Enabled:= false;
        Button1.Enabled:= true;
      end;end;
      

  4.   

    我用 M$ spy ++  7.1 看了
    类名是:Afx:400000:300b
    样式是:WS_CHILDWINDOW上面明明有数据是时刻在变化的亚,但是这个窗口往下,就看不到子类了该怎么办呢?